在ascii字串(「192.168.0.99」)與網路位元組序的二進位制值間轉換位址。
涉及函式的標頭檔案為#include
一、只適用於ipv4協議的函式:
int inet_aton(const char * string, struct in_addr* addr);
//函式成功,返回值1,否則返回零。
//將string所指的c字串轉換成32位的網路位元組序二進位制值,用個指標addr儲存。
in_addr_t inet_addr(const char * strptr);
//返回值為32位的網路位元組序二進位制值;
//出錯時返回乙個常值inaddr_none(32位為1的值),即255.255.255.255不能由此函式
//處理,因為inet_addr(「255.255.255.255」)的返回值為2^32。
char * inet_ntoa(struct in_addr inaddr);
//將乙個32位的網路位元組序二進位制位址轉換成相應的點分十進位制數串。
struct in_addr {
unsigned long s_addr;
以上函式不推薦使用奧!!因為他們不支援ipv6
二、適用於ipv4、ipv6協議的函式
int inet_pton(int family, const char* strptr, void *addrptr);
//轉換由指標strptr所指的串,通過指標addrptr儲存二進位制結果。
//成功返回1; strptr指向的不是有效表達格式返回0; 出錯返回-1。
char * inet_ntop(int family, const void *addrptr, char* strptr, size_t len);
//family = af_inet/af_inet6, 如果family不被支援,兩個函式都返回錯誤,並將errno置為eafnosupport 具體使用例項見下一章節
IP位址轉換函式
ip位址轉換函式 unsigned long inet addr const char cp inet addr將乙個點分十進位制ip位址字串轉換成32位數字表示的ip位址 網路位元組順序 char inet ntoa struct in addr in inet ntoa將乙個32位數字表示的ip...
IP位址轉換函式
include in addr t inet addr const char strptr 點分十進位制ipv4位址轉換為網路ipv4位址,失敗返回inaddr none int inet aton const char cp,struct in addr inp 點分十進位制ipv4位址轉換為網路...
IP位址轉換函式
常見的ip位址格式類似192.168.10.1,這是乙個ipv4格式的位址,但是這種格式只是為了方便使用者對其操作。若要計算機能夠識別,需要先將其由文字格式轉換為二進位制格式。早期linux系統中常用以下函式轉換ip位址 int inet aton const char cp,struct in a...