linux .net addr是一個函數,inet_addr()的功能是將一個點分十進制的IP轉換成一個長整數型數;語法如“in addr t inet addr(const char *cp)”,該函數解釋cp參數中的字符串,這個字符串用Internet的“.”間隔格式表示一個數字的Internet地址。
本教程操作環境: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視頻教程》