網路地址處理函式用法inet_aton inet_ntoa inet_addr inet_network

中下游國外我發表於2016-09-21
參考:http://baike.so.com/doc/6950872-7173273.html


int inet_aton(const char *string, struct in_addr*addr);
功能:將一個字串IP地址轉換為一個32位的網路序列IP地址。
標頭檔案:<arpa/inet.h>
引數描述:
1 輸入引數string包含ASCII表示的IP地址
2 輸出引數addr是將要用新的IP地址更新的結構。
返回值:
如果這個函式成功,函式的返回值非零,如果輸入地址不正確則會返回零。使用這個函式並沒有錯誤碼存放在errno中,所以它的值會被忽略。


struct sockaddr_in adr_inet; /* AF_INET */
if( !inet_aton("127.0.0.1", &adr_inet.sin_addr))    
    bail("bad address");


將網路地址轉換為IP地址字串
char *inet_ntoa (struct in_addr *);
注意:inet_ntoa()返回的字串是在一個靜態分配的緩衝區裡面,下一次呼叫此函式的時候緩衝區會被重寫。



參考:http://baike.so.com/doc/5456532-5694920.html
原型:in_addr_t inet_addr(const char *cp);
引數:字串,一個點分十進位制的IP地址
返回值:如果正確執行將返回一個無符號長整數型數。如果傳入的字串不是一個合法的IP地址,將返回INADDR_NONE。
標頭檔案:arpa/inet.h
注意:該返回對255.255.255.255地址認為是非法的,返回INADDR_NONE



in_addr_t inet_network(const char *cp);
引數:字串,一個點分十進位制的IP地址
返回值:如果正確執行將返回一個無符號長整數型數。如果傳入的字串不是一個合法的IP地址,將返回INADDR_NONE。
注意:該返回對255.255.255.255地址認為是非法的,返回INADDR_NONE


對比:inet_addr返回的整數形式是網路位元組序,而inet_network返回的整數形式是主機位元組序







相關文章