Linux下靠譜的獲取本機IP地址的C程式碼實現
#include <stdio.h> #include <sys/types.h> #include <ifaddrs.h> #include <netinet/in.h> #include <string.h> #include <arpa/inet.h> #include <unistd.h> #include <sys/types.h> #include <string.h> #include <stdlib.h> #include <stdlib.h> #include <time.h> #include <sys/vfs.h> #include <stdio.h> #include <signal.h> #include <sys/stat.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> int main (int argc, const char * argv[]) { struct ifaddrs * ifAddrStruct=NULL; void * tmpAddrPtr=NULL; getifaddrs(&ifAddrStruct); while (ifAddrStruct!=NULL) { if (ifAddrStruct->ifa_addr->sa_family==AF_INET) { // check it is IP4 // is a valid IP4 Address tmpAddrPtr = &((struct sockaddr_in *)ifAddrStruct->ifa_addr)->sin_addr; char addressBuffer[INET_ADDRSTRLEN]; inet_ntop(AF_INET, tmpAddrPtr, addressBuffer, INET_ADDRSTRLEN); printf("%s IPV4 Address %s\n", ifAddrStruct->ifa_name, addressBuffer); } else if (ifAddrStruct->ifa_addr->sa_family==AF_INET6) { // check it is IP6 // is a valid IP6 Address tmpAddrPtr=&((struct sockaddr_in *)ifAddrStruct->ifa_addr)->sin_addr; char addressBuffer[INET6_ADDRSTRLEN]; inet_ntop(AF_INET6, tmpAddrPtr, addressBuffer, INET6_ADDRSTRLEN); printf("%s IPV6 Address %s\n", ifAddrStruct->ifa_name, addressBuffer); } ifAddrStruct = ifAddrStruct->ifa_next; } return 0; }
編譯
gcc -g -O0 -o showip main.c
執行
./showip
顯示如下
[[email protected] ~]# ./showip
lo IPV4 Address 127.0.0.1
eth0 IPV4 Address 192.168.1.103
lo IPV6 Address ::
eth0 IPV6 Address 0:0:fe80::20c:29ff
相關推薦
Linux下靠譜的獲取本機IP的C程式碼實
這裡寫程式碼片http://blog.csdn.net/langeldep/article/details/8306603 正在做一個網路程式設計的任務,多臺裝置向伺服器傳送圖片,傳送圖片的時候同時告訴伺服器自己的IP。伺服器根據IP來區分不同的裝置,將圖片存
linux下使用ioctl() 獲取本機mac地址、ip地址等等
在linux下,我們知道可以通過ifconfig獲取mac地址和ip地址等相關資訊,但是如果要使用gcc程式實現的話,我們就需要使用到系統所提供的一個函式ioctl(),iotec函式是對裝置的i/o通道進行管理的函式。由於這個函式用途比較多,如果要學習可以參
Linux下靠譜的獲取本機IP地址的C程式碼實現
#include <stdio.h> #include <sys/types.h> #include <ifaddrs.h> #include <netinet/in.h> #include <string
Linux下C語言獲取本機IP地址
#include <sys/ioctl.h> #include <net/if.h> #include <arpa/inet.h> char* GetLocalIp() { int MA
Linux下Java獲取本機IP地址
在Linux下用InetAddress.getLocalHost()方法獲取本機IP地址, 得到的結果總是:127.0.0.1。 原來這個是etc/hosts檔案中的配置,並非網絡卡的IP地址。 後來多方尋訪,終於得下以下程式碼, 執行後在控制檯輸出IP與MAC地址。import java.net.*;imp
Linux下C程式設計實現---獲取本機IP地址
在LINUX下,如果需要獲取本機的IP地址,需要用到以下一個結構體,該結構體在/usr/include/net/if.h檔案中 struct ifreq { # define IFHWADDRLEN 6 # define IFNAMSIZ IF_
windows下用C++獲取本機IP地址
ali 返回 轉換成 data info AC ctrl nag != BSTR CamUtilsCtrl::GET_TERM_IP(void){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); CString strResult
linux c 獲取本機ip地址
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #include <
linux程式設計獲取本機IP地址的三種方法
這是一項不太清晰而且沒有多大意義的工作。一個原因是網路地址的設定非常靈活而且都是允許使用者進行個性
linux獲取本機IP地址
ifaddrs結構體定義如下: C程式碼 struct ifaddrs { struct ifaddrs *ifa_next; /* Next item in list */ char *ifa_name; /* Nam
獲取本機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
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檔案,拷貝到
C語言獲取本機IP地址
char* getIpAddress(){ WSADATA wsaData; char name[255];//定義用於存放獲得的主機名的變數 char *ip;//定義IP地址變數 PHOSTENT hostinfo;