http://blog.csdn.net/K346K346/article/details/48231933

int main ()
{
/*
struct ifaddrs *ifap, *ifa;
struct sockaddr_in *sa;
char *addr; getifaddrs (&ifap);
for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
if (ifa->ifa_addr->sa_family==AF_INET) {
sa = (struct sockaddr_in *) ifa->ifa_addr;
addr = inet_ntoa(sa->sin_addr);
printf("Interface: %s\tAddress: %s, %x \n", ifa->ifa_name, addr,sa->sin_addr);
}
} freeifaddrs(ifap); */

/*
//设置为本机IP,如果获取地址失败则使用hostname,这种获取方式依赖/etc/hosts,获取不准。
// 获取本机地址,只取一个
hostent* pHost = gethostbyname(host_name);
if ( pHost != 0 )
{
for ( int i = 0; pHost != 0 && pHost->h_addr_list[i] != 0; i++ )
{
if((unsigned int)((unsigned char*)pHost->h_addr_list[i])[0] == 127)
continue;
char ip_str[16] = {0};
sprintf( ip_str, "%x%x%x%x",(unsigned int)((unsigned char*)pHost->h_addr_list[i])[0],
(unsigned int)((unsigned char*)pHost->h_addr_list[i])[1],
(unsigned int)((unsigned char*)pHost->h_addr_list[i])[2],
(unsigned int)((unsigned char*)pHost->h_addr_list[i])[3]);
host_id_ = ip_str;


break;
}
}
*/

struct ifaddrs *ifap, *ifa;
struct sockaddr_in *sa;

getifaddrs (&ifap);
for (ifa = ifap; ifa; ifa = ifa->ifa_next)
{
if (ifa->ifa_addr && ifa->ifa_addr->sa_family==AF_INET)
{
if(strncmp(ifa->ifa_name, "lo", 2) == 0)
continue;

sa = (struct sockaddr_in *) ifa->ifa_addr;
char ip_str[16] = {0};
sprintf(ip_str,"%08x", sa->sin_addr);
printf("---%s \n",ip_str);
printf("%d,%d,%d,%d \n",sizeof(sa->sin_addr),sizeof(int),sizeof(unsigned long), sizeof(unsigned long long));
}
}
freeifaddrs(ifap);

return 0;
}

 

Linux 下获取本机IP的更多相关文章

  1. Linux下获取本机IP地址的代码

    Linux下获取本机IP地址的代码,返回值即为互联网标准点分格式的字符串. #define ETH_NAME "eth0" //获得本机IP地址 char* GetLocalAdd ...

  2. linux下获取本机IP

    转载:http://blog.chinaunix.net/uid-20593763-id-1620213.html 源代码级Unix/Linux 通用网卡IP地址获取方法 在Unix和Linux系统下 ...

  3. Windows下获取本机IP地址方法介绍

    Windows下获取本机IP地址方法介绍 if((hostinfo = gethostbyname(name)) != NULL) { #if 1 ; printf("IP COUNT: % ...

  4. Linux下获得本机IP(非127.0.0.1)

    在Linux下用InetAddress.getLocalHost()方法获取本机IP地址,得到的结果总是:127.0.1.1.原来这个是etc/hosts文件中的配置,并非网卡的IP地址. 可用代码如 ...

  5. QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址

    获取主机名称 /* * 名称:get_localmachine_name * 功能:获取本机机器名称 * 参数:no * 返回:QString */ QString CafesClient::get_ ...

  6. Linux下获取和设置IP

    在Linux下获取关于IP和网关的操作:重点是对struct ifreq 的操作. 那么进入目录/usr/include/net/if.h下看查找struct ifreq结构体. /* Interfa ...

  7. rust下获取本机IP

    又拾起了rust语言, 想写一点东西玩一玩, 但是发现连一个获取本机IP地址的库都没有, 还得挽起袖子自己撸. https://crates.io/crates/local_ipaddress 没有用 ...

  8. python未知网卡名情况下获取本机IP

    import socket def get_ip(): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) try: # doesn't even ...

  9. windows和linux下的本机IP的获取(亲测有效)

    package com.handsight.platform.fras.util; import org.apache.log4j.Logger; import javax.servlet.http. ...

随机推荐

  1. Spring Framework5.0 学习(4)—— 基本概念

    1.0  控制反转(IOC)/依赖注入(DI) 通过依赖注入(DI),对象的依赖关系将由负责协调系统关系中各个对象的第三方组件在创建对象是设定.对象无需自行创建或管理它们的依赖关系——依赖关系将被自动 ...

  2. Join Resig's “Simple JavaScript Inheritance ”

    ======================Enein翻译=========================           John Resig 写了一篇关于 JavaScript 里类似其它语 ...

  3. [USACO5.2]Snail Trails

    嘟嘟嘟 一道很水的爆搜题,然后我调了近40分钟…… 错误:输入数据最好用cin,因为数字可能不止一位,所以用scanf后,单纯的c[0]为字母,c[1]数字………………………… #include< ...

  4. 【转】java.lang.ClassNotFoundException: org.springframework.context.event.GenericApplicationListener

    http://www.cnblogs.com/softidea/p/6064091.html Caused by: java.lang.NoClassDefFoundError: org/spring ...

  5. CentOS gitlab 安装配置

    CentOS gitlab 安装配置 2018-11-02 11:23:09   Visit  5 在/etc/yum.repos.d 目录下创建文件gitlab-ce.repo,使用国内的安装源 b ...

  6. mysql忘记密码重置密码方法

    https://blog.csdn.net/weidong_y/article/details/80493743

  7. 【SQLSERVER学习笔记】进攻式编程

    一般的编程语言建议是进行防御式编程,在开始处理之前先检查所有参数的合法性.但实际上,对数据库编程而言,尽量同时做几件事情的进攻式编程有切实的优势.*/ --我们SP中常见的防御式编程示例:--场景一: ...

  8. jquery获取所有选中的checkbox

    获取所有name为spCodeId的checkbox var spCodesTemp = "";       $("input:checkbox[name=spCodeI ...

  9. springboot集成activiti工作流时容易出现的问题

    No.1 启动报错 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'or ...

  10. 【译】为什么要写super(props)

    译注: 原文地址 https://overreacted.io/why-do-we-write-super-props/ 正文 我听说Hooks是新的热点.好笑的是,我想通过描述一些关于class组件 ...