linux inet addr是什么

linux .net 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參數中的字符串,這個字符串用Internet的“.”間隔格式表示一個數字的Internet地址。返回值可用作Internet地址。所有Internet地址以網絡字節順序返回(字節從左到右排列)。

Internet地址用“.”間隔的地址可有下列幾種表達方式:

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

當四個部分都有定值時,每個都解釋成一個字節數據,從左到右組成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視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享