首頁  >  文章  >  運維  >  linux inet addr是什麼

linux inet addr是什麼

藏色散人
藏色散人原創
2023-04-21 11:06:592317瀏覽

linux inet addr是一個函數,inet_addr()的功能是將一個點分十進制的IP轉換成一個長整數型數;語法如“in addr t inet addr(const char *cp)”,這個函數解釋cp參數中的字串,這個字串用Internet的「.」間隔格式表示一個數字的Internet位址。

linux inet addr是什麼

本教學操作環境:linux7.3系統、Dell G3電腦。

linux inet addr是什麼?

inet_addr()的功能是將一個點分十進位的IP轉換成一個長整數型數(u_long型別)

inet addr函數

inet addr函數轉換網路主機位址(如192.168.1.10)為網路位元組序二進位值,如果參數char*cp無效,函數回傳- 1(NADDR NONE),這個函數在處理地址為255.255.255.255時也回傳- 1,255.255.255.255是一個有效的位址,不過inet addr無法處理

in addr t inet addr(const char *cp)

本函數解釋cp參數中的字串,不過inet addr無法處理

a.b.c.d,a.b.c,a.b,a

本函數解釋cp參數中的字串,不過inet addr無法處理

rrreee

本函數解釋cp參數中的字串,但這個字串用Internet的「.」間隔格式表示一個數字的Internet位址。傳回值可用作Internet位址。所有Internet位址以網路位元組順序傳回(位元組從左到右排列)。

Internet位址以「.」間隔的位址可有下列幾種表達方式:

rrreee

當四個部分都有定值時,每個都解釋成一個位元組數據,從左到右組成Internet四位元組位址。請注意,當一個Internet位址在Intel機器上表示成一個32位元整數數時,則上述的位元組為「d.c.b.a」。這是因為Intel處理器的位元組是從右向左排列的。

請注意:只有Berkeley支持下述表達法,Internet其餘各處均不支持。考慮到與軟體的兼容性,應按規定使用。

對一個三部分位址,最後一部分解釋成16位元資料並作為網路位址的最右兩個位元組。這樣,三部分位址便很容易表示B組網路位址,如「128.net.host」.

對一個兩部分位址,最後一部分解釋成24位元資料並作為網路位址的最右三個位元組,這樣,兩部分位址便很容易表示C組網路位址,如「net.host」。

對只有一個部分的位址,則將它的值直接存入網路位址不作任何位元組的重組。

傳回值:若沒有錯誤發生,inet_addr()傳回無符號長整數數,其中以適當位元組順序存放Internet位址。如果傳入的字串不是一個合法的Internet位址,例如「a.b.c.d」位址中任一項超過255,那麼inet_addr()回傳INADDR_NONE。在IP只有一部分時(即沒有 ”.“ 時),IP的字串如果只由數字組成,inet_addr()不檢查數字是否大於255。

###推薦學習:《###linux影片教學###》###

以上是linux inet addr是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn