linux 下獲取本地IP位址

2021-05-24 23:42:00 字數 1852 閱讀 1143

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

int main(int argc, char *argv)  

int getlocaip(char *ip)    

struct ifreq req;     

struct sockaddr_in *host;     

bzero(&req, sizeof(struct ifreq));     

strcpy(req.ifr_name, "eth0");     

ioctl(sockfd, siocgifaddr, &req);    

host = (struct sockaddr_in*)&req.ifr_addr;    

strcpy(ip, inet_ntoa(host->sin_addr));     

close(sockfd);     

return 1;    

//獲取本地ip位址

qstring getlocalip()  

memset(&ifr_ip, 0, sizeof(ifr_ip));     

strncpy(ifr_ip.ifr_name, "eth0", sizeof(ifr_ip.ifr_name) - 1);     

if( ioctl( sock_get_ip, siocgifaddr, &ifr_ip) < 0 )     

sin = (struct sockaddr_in *)&ifr_ip.ifr_addr;     

strcpy(ipaddr,inet_ntoa(sin->sin_addr));         

printf("local ip:%s /n",ipaddr);      

close( sock_get_ip );  

return qstring( ipaddr );  

}  //修改本機ip位址的函式

int setlocalip( const char *ipaddr )  

memset( &sin_set_ip, 0, sizeof(sin_set_ip));  

strncpy(ifr_set_ip.ifr_name, "eth0", sizeof(ifr_set_ip.ifr_name)-1);     

sin_set_ip.sin_family = af_inet;  

sin_set_ip.sin_addr.s_addr = inet_addr(ipaddr);  

memcpy( &ifr_set_ip.ifr_addr, &sin_set_ip, sizeof(sin_set_ip));  

if( ioctl( sock_set_ip, siocsifaddr, &ifr_set_ip) < 0 )  

//設定啟用標誌  

ifr_set_ip.ifr_flags |= iff_up |iff_running;  

//get the status of the device  

if( ioctl( sock_set_ip, siocsifflags, &ifr_set_ip ) < 0 )  

close( sock_set_ip );  

return 0;  

獲取本地ip位址

之前寫了乙個自動收款的方法,使用的是springmvc定時器實現的,自動收款的方法,主要是針對現金業務的,實現對於業務員提交的收款單,自動收款的一系列操作來減輕 財務同事工作的,完成後在測試系統上測試沒問題,然後上線,上線後經常有幾筆會出現從重複收款的問題,我把 看了一遍又一遍,把日誌看了一遍又一遍...

Lua獲取本地IP位址

如何通過lua指令碼獲取本機的ip位址,需要用到socket.lua指令碼。local socket require socket print os.time function getadd hostname local ip,resolved socket.dns.toip hostname lo...

Linux下 獲取本機ip位址

查ip資訊可以使用ifconfig,但有時候我們需要使用指令碼語句來進行自動獲取。方法一 ifconfig a grep inet grep v 127.0.0.1 grep v inet6 awk tr d addr 當前語句可以排查出除了127.0.0.1之外的所有ip位址,但有些時候我們的虛擬...