linux網路 點分十進位制和網路位元組序轉換

2021-09-30 13:35:39 字數 874 閱讀 3750

#include 

in_addr_t inet_addr(const

char *string);

該函式的作用是將用點分十進位制字串格式表示的ip位址轉換成32位大端序整型。

成功時返回32位大端序整型數值,失敗時返回 inaddr_none 。

#include 

#include

int main( void )

/*1.2.3.4 -> 0x4030201

192.168.1.1 -> 0x101a8c0

*/

char * inet_ntoa(struct in_addr addr);
該函式的作用與 inet_addr 正好相反。將32位大端序整型格式ip位址轉換為點分十進位制格式。

成功時返回轉換的字串位址值,失敗時返回-1。

#include 

#include

int main( void )

/*0x4030201 -> 192.168.1.1.

0x101a8c0 -> 192.168.1.1.

*/

出現以上的錯誤是因為,這個函式的結果存放在statically allocated buffer。然後返回這個位址。

如果不及時將資料拷貝走,下次會覆蓋,所以上面的**輸出的是最後一次的結果。

可修改如下:

#include 

#include

#include

#define buf_sz 32

int main( void )

點分十進位制字串IP與十進位制整數相互轉換方法

點分十進位制字串ip與十進位制整數相互轉換方法 param args public static void main string args string ip str 255.255.255.255 string array ip str.split long ip long long.parse...

網路程式設計基礎 二進位制與點分十進位制 轉換

2.點分十進位制和二進位制儲存相互轉換 include include include include include int main 二進位制存貯變數,32bit struct in addr ipv4 addr bin 點分十進位制 二進位制存貯 if 1 inet pton af inet,...

點分十進位制與unsigned int 32互轉

原理 ip位址的每段可以看成是乙個0 255的整數,把每段拆分成乙個二進位制形式組合起來,然後把這個二進位制數轉變成 乙個長整數。舉例 乙個ip位址為10.0.3.193 每段數字 相對應的二進位制數 10 00001010 0 00000000 3 00000011 193 11000001 組合...