linux下ip轉換工具::
#include
#include
#include
strcut sockaddr_in src;
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下網路程式設計,一般需要包含的標頭檔案包括:
#include
#include
#include
#include
#include
#include
linux下網路位址有:
struct sockaddr
這種結構不常用,常用的是:
struct sockaddr_in
其中:struct in_addr
strcut sockaddr_in src;
src.sin_family = af_inet;
src.sin_addr.s_addr = inet_addr("*.*.*.*");
bzero(src.sin_zero,8);
其中用到了,inet_addr是linux提供的網路程式設計中使用的ip轉換工具。
inet_addr("*.*.*.*");將字串ip位址轉換成網路位址,並且是網路位元組序的。
相反的轉換工具有inet_ntoa等。
Linux 命令配置網路位址
auto eth0 開機自動連線網路 iface lo inet loopback allow hotplug eth0 iface eth0 inet static static表示使用固定ip,dhcp表述使用動態ip address 198.9.146.131 設定ip位址 netmask 2...
網路位址劃分
網路位址可以分為網路號和主機號,主機號又可以分為子網號和子網主機號。ip位址分為五類,a類保留給 機構,b類分配給中等規模的公司,c類分配給任何需要的人,d類用於組播,e類用於實驗,各類可容納的位址數目不同。1 特徵 a 0 b 10xx c 110x d 1110 e 11110 2 各類位址的劃...
網路位址劃分
目前的網路ip是32位的。屬於ipv4 ipv6是128位。目前的網路是32位,分為4段。每段8位。a類位址是網路位有8位,主機位有24位,可以容納很多的主機,一般是屬於大型的網路。子網掩碼是 255.0.0.0 0 x.00000000.00000000.00000000 但是實際可以用時1 12...