網路IP轉換函式

2021-07-05 23:25:59 字數 633 閱讀 5935

src.sin_addr.s_addr   =  inet_addr("*.*.*.*");                 //構建網路位址。

printf("%s\n",inet_ntoa(src.sin_addr));             //將網路位址轉換成字串。

注意::

inet_ntoa存在的問題是inet_ntoa的返回值是乙個static型別的char *指標,所以會出現問題::

char *a1,a2;

src.sin_addr.s_addr  =  inet_addr("192.168.1.123");

a1   =inet_ntoa(src.sin_addr);                  

src.sin_addr.s_addr = inet_addr("192.168.1.124");

a2 = inet_ntoa(src.sin_addr);

printf("a1:%s\n",a1);

顯示為::         a1:192.168.1.124

printf("a2:%s\n",a2);

顯示為:          a2:192.168.1.124

原因是靜態的static   char *

Linux下網路IP位址的轉換函式

網路ip位址本是用32位二進位制來表示的,為了記憶的方便可以用點分十進位制來表示ip位址,同時,網路ip位址在網路傳輸和計算機內部的儲存方式也不同,需要用函式來進行轉換。1.將點分十進位制字串轉換成十進位製長整型數 in addr t inet addr const char cp in addr ...

Linux下網路IP位址的轉換函式

網路ip位址本是用32位二進位制來表示的,為了記憶的方便可以用點分十進位制來表示ip位址,同時,網路ip位址在網路傳輸和計算機內部的儲存方式也不同,需要用函式來進行轉換。1.將點分十進位制字串轉換成十進位製長整型數 in addr t inet addr const char cp in addr ...

Linux下網路IP位址的轉換函式

網路ip位址本是用32位二進位制來表示的,為了記憶的方便可以用點分十進位制來表示ip位址,同時,網路ip位址在網路傳輸和計算機內部的儲存方式也不同,需要用函式來進行轉換。將點分十進位制字串轉換成十進位製長整型數 in addr t inet addr const char cp in addr t ...