1. 程式人生 > >linux獲取本機IP地址

linux獲取本機IP地址

 ifaddrs結構體定義如下:

C程式碼  收藏程式碼
  1. struct ifaddrs   
  2. {   
  3.     struct ifaddrs  *ifa_next;    /* Next item in list */   
  4.     char            *ifa_name;    /* Name of interface */   
  5.     unsigned int     ifa_flags;   /* Flags from SIOCGIFFLAGS */   
  6.     struct sockaddr *ifa_addr;    /* Address of interface */   
  7.     struct
     sockaddr *ifa_netmask; /* Netmask of interface */   
  8.     union   
  9.     {   
  10.         struct sockaddr *ifu_broadaddr; /* Broadcast address of interface */   
  11.         struct sockaddr *ifu_dstaddr; /* Point-to-point destination address */   
  12.     } ifa_ifu;   
  13.     #define              ifa_broadaddr ifa_ifu.ifu_broadaddr 
      
  14.     #define              ifa_dstaddr   ifa_ifu.ifu_dstaddr   
  15.     void            *ifa_data;    /* Address-specific data */   
  16. };   

    ifa_next指向連結串列的下一個成員;ifa_name是介面名稱,以0結尾的字串,比如eth0,lo;ifa_flags是介面的標識位(比如當IFF_BROADCAST或IFF_POINTOPOINT設定到此標識位時,影響聯合體變數ifu_broadaddr儲存廣播地址或ifu_dstaddr記錄點對點地址);ifa_netmask儲存該介面的子網掩碼;結構體變數儲存廣播地址或點對點地址(見括弧介紹ifa_flags);ifa_data儲存了該介面協議族的特殊資訊,它通常是NULL(一般不關注他)。

    函式getifaddrs(int getifaddrs (struct ifaddrs **__ifap))獲取本地網路介面資訊,將之儲存於連結串列中,連結串列頭結點指標儲存於__ifap中帶回,函式執行成功返回0,失敗返回-1,且為errno賦值。
    很顯然,函式getifaddrs用於獲取本機介面資訊,比如最典型的獲取本機IP地址。

相關推薦

linux獲取IP地址

 ifaddrs結構體定義如下: C程式碼   struct ifaddrs    {        struct ifaddrs  *ifa_next;    /* Next item in list */        char            *ifa_name;    /* Nam

Linux下C語言獲取IP地址

#include <sys/ioctl.h> #include <net/if.h> #include <arpa/inet.h>   char* GetLocalIp() { int MA

Linux 獲取IP、MAC地址用法大全

getifaddrs()和struct ifaddrs的使用,獲取本機IP     ifaddrs結構體定義如下: struct ifaddrs { struct ifaddrs *ifa_next; /* Next item in

linux c 獲取ip地址

#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #include <

linux程式設計獲取IP地址的三種方法

                這是一項不太清晰而且沒有多大意義的工作。一個原因是網路地址的設定非常靈活而且都是允許使用者進行個性

Linux下Java獲取IP地址

在Linux下用InetAddress.getLocalHost()方法獲取本機IP地址, 得到的結果總是:127.0.0.1。 原來這個是etc/hosts檔案中的配置,並非網絡卡的IP地址。 後來多方尋訪,終於得下以下程式碼, 執行後在控制檯輸出IP與MAC地址。import java.net.*;imp

Linux下靠譜的獲取IP地址的C程式碼實現

#include <stdio.h> #include <sys/types.h> #include <ifaddrs.h> #include <netinet/in.h> #include <string

Linux下C程式設計實現---獲取IP地址

在LINUX下,如果需要獲取本機的IP地址,需要用到以下一個結構體,該結構體在/usr/include/net/if.h檔案中 struct ifreq { # define IFHWADDRLEN 6 # define IFNAMSIZ IF_

獲取IP地址的小腳

ash class p地址 nbsp 地址 int done 獲取本機 onf 獲取本機私網地址(1個) 1 #!/bin/bash 2 # Author : standby 3 # Date : 2017-05-18 4 # D

unity 獲取ip地址

ipa mil work get hostname [] 本機 取ip gethost IPAddress[] ips = Dns.GetHostAddresses(Dns.GetHostName()); //Dns.GetHostName()獲取本機名Dns.GetH

獲取IP地址

down pos -m 兩個 div mar inter 獲取本機ip地址 work 問題描述 一臺電腦有IPV4地址和IPV6地址,目前使用的基本是IPV4地址, 有些情況還有多個網卡,有線的、無線的、還有vmare虛擬的兩個網卡。 獲取所有的IP地址 //獲取本機IP

windows下用C++獲取IP地址

ali 返回 轉換成 data info AC ctrl nag != BSTR CamUtilsCtrl::GET_TERM_IP(void){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); CString strResult

shell中獲取ip地址

align 本機ip www. .cn logs res font 地址 獲取本機ip 方法一: /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk ‘{print $2}‘|tr -d "addr

C++ 獲取ip地址

C++/MFC  獲取本地計算機的所有IP string m_LocalIP1;//IP地址臨時變數 string m_LocalIP2; LPCSTR psz; //獲得本地計算機名 char PCnameBuffer[128]; string m_PCname; //初始化

【C#】獲取IP地址

前言    最近開始做牛腩新聞釋出系統,剛接觸網頁開發,因為沒有基礎,做起來比較困難,當然BUG就多了。不過“牛”老師水平很高,講的很清楚,出現BUG分分鐘就可以搞定。在做評論新聞這一功能時,需要獲取本機的IP地址。這時就出現BUG了。 BUG 根據“牛”老師的方法: IP

python 獲取IP地址,檢測埠是否被佔用

import socket def get_host_ip(): """ get host ip address 獲取本機IP地址 :return: """ s = socket.socket(socket.

批處理--工作當中獲取ip地址然後執行一個迴圈啟動指令碼

goto :main rem +++++++獲取本機ip++++++++++++++++++++++++++++++++++++   :get_local_ip   rem 注意 不要照搬某些人的文章,如果你把函式寫成setlocal   dosomething endlocal 這種結構,那麼在這段程式碼中

NSIS獲取IP地址寫入配置檔案

安裝一個應用程式的時候需要獲取當前的網絡卡IP地址,即伺服器IP地址,同時寫入到配置檔案。NSIS提供了獲取IP地址的外掛,IP-plugin,詳情請看:http://nsis.sourceforge.net/IP_plug-in 外掛安裝很簡單,只需要下載dll檔案,拷貝到

linux獲取ip

int get_ip ( in_addr_t addrs[], int asize  ) {         int MAXINTERFACES=16;         int i = 0;         int fd, intrface = 0;         str

C語言獲取IP地址

char* getIpAddress(){ WSADATA wsaData; char name[255];//定義用於存放獲得的主機名的變數 char *ip;//定義IP地址變數 PHOSTENT hostinfo;