利用ioctl獲取本地ip位址

2022-05-02 22:18:08 字數 688 閱讀 1322

linux下利用ioctl函式與struct ifreq結構體可以獲取本地的ip位址等資訊。

ioctl函式原型:int ioctl( int fd, int request, .../* void *arg */ );

第二個引數為相關的動作。

獲取本地ip的**如下(同理可獲得其他的介面資訊)

1 #include2 #include//for inet_ntoa , struct sockaddr_in

3 #include4 #include5 #include6 #include//for struct ifreq

7 #include8 int main(void)

16 strcpy(ifr.ifr_name,"eth0");

17 if(ioctl(sockfd,siocgifaddr,&ifr)<0)

21 memcpy(&sin,&ifr.ifr_addr,sizeof(sin));

22 //sin=(struct sockaddr_in)ifr.ifr_addr;

23 printf("ip is %s\n",inet_ntoa(sin.sin_addr));

24 return 0;

25 }

用ioctl獲得本地ip位址

用ioctl獲得本地ip位址時要用到兩個結構體ifconf和ifreq,它們對於大多數人 來說都是比較陌生的,這裡給大家一種比較簡單的理解方法,當然只一種幫助 理解的方法,在描述中可能會有一些地方與真實定義有所出入,僅供參考.首先先認識一下ifconf和ifreq ifconf通常是用來儲存所有介面...

用ioctl獲得本地ip位址

用ioctl獲得本地ip位址時要用到兩個結構體ifconf和ifreq,它們對於大多數人 來說都是比較陌生的,這裡給大家一種比較簡單的理解方法,當然只一種幫助 理解的方法,在描述中可能會有一些地方與真實定義有所出入,僅供參考.首先先認識一下ifconf和ifreq ifconf通常是用來儲存所有介面...

用ioctl獲得本地ip位址

用ioctl獲得本地ip位址時要用到兩個結構體ifconf和ifreq,它們對於大多數人 來說都是比較陌生的,這裡給大家一種比較簡單的理解方法,當然只一種幫助 理解的方法,在描述中可能會有一些地方與真實定義有所出入,僅供參考.首先先認識一下ifconf和ifreq ifconf通常是用來儲存所有介面...