linux获取主机名后用gethostbyname() 不能获取主机ip,该怎么处理
2013-05-08 09:15
246 查看
linux获取主机名后用gethostbyname() 不能获取主机ip
我在虚拟机上用以下函数能获取主机ip的ip
但是用交叉编译器编译后放到我arm板上就不行能获取主机名但是不是获取ip,提示段错误;
我在arm板的操作终端输入命令hostname -s会显示主机名 +unknown server error ,在虚拟机下输入该命令就只显示主机名
哪位高手帮忙指导指导arm板应该怎么设置啊
------解决方案--------------------------------------------------------
获取本机IP,你可以用:
gethostname() gethostbyname()在Linux不好用!
我在虚拟机上用以下函数能获取主机ip的ip
char hostname[256]; if (gethostname(hostname, 256) == 0) { printf("localhost name:%s\n",hostname); struct hostent* hostinfo = gethostbyname(hostname); client_value->localip =(uint32_t)((struct in_addr*)hostinfo->h_addr_list[0])->s_addr; printf("client_value->localip=%d\n",client_value->localip); }
但是用交叉编译器编译后放到我arm板上就不行能获取主机名但是不是获取ip,提示段错误;
我在arm板的操作终端输入命令hostname -s会显示主机名 +unknown server error ,在虚拟机下输入该命令就只显示主机名
哪位高手帮忙指导指导arm板应该怎么设置啊
------解决方案--------------------------------------------------------
获取本机IP,你可以用:
char* getlocalhostip () {
int MAXINTERFACES=16; char *ip=NULL; int fd, intrface, retn = 0; struct ifreq buf[MAXINTERFACES]; ///if.h struct ifconf ifc; ///if.h if ((fd = socket (AF_INET, SOCK_DGRAM, 0)) >= 0) //socket.h { ifc.ifc_len = sizeof buf; ifc.ifc_buf = (caddr_t) buf; if (!ioctl (fd, SIOCGIFCONF, (char *) &ifc)) //ioctl.h { intrface = ifc.ifc_len / sizeof (struct ifreq); while (intrface-->0) { if (!(ioctl (fd, SIOCGIFADDR, (char *) &buf[intrface]))) { ip=(inet_ntoa(((struct sockaddr_in*)(&buf[intrface].ifr_addr))->sin_addr));//types break; } } } close (fd); } return ip; }
gethostname() gethostbyname()在Linux不好用!
相关文章推荐
- linux之 获取主机IP gethostbyname()函数说明
- Linux环境下获取当前主机的IP/MAC等信息(C/C++)
- Python获取linux主机ip的简单实现方法
- 【python】获取linux主机ip的一种方法
- Python获取linux主机ip的简单实现方法
- Linux环境下获取当前主机的IP/MAC等信息(C/C++)
- Linux LAN 通过IP获取目标主机的MAC地址
- linux c 网络编程:用域名获取IP地址或者用IP获取域名 网络地址转换成整型 主机字符顺序与网络字节顺序的转换
- Linux下访问Tomcat只能通过localhost,不能通过IP,怎么解决
- Linux 网络编程之通过IP或者主机名获取信息
- linux下gethostbyname通过域名获取IP的例子
- Linux系统 C++ 获取网络接口,以及主机网关IP
- 不能上网诡异问题||强制linux DHCP 客户端重新获取IP (dhclient)
- python 获取Linux主机名和IP
- gethostbyname() -- 用域名或主机名获取IP地
- 获取主机名、IP——gethostent(),gethostbyname(),gethostbyaddr()
- Linux C 网络编程 - 获取本地 ip 地址,mac,通过域名获取对应的 ip 、获取本地主机的名字
- winsock套节字错误不能从DHCP获取IP处理方法
- Windows主机与VirtualBox虚拟机下的Linux共享网络和windows本机ip和dns地址怎么查?
- Linux 公网IP和内网IP,Dubbo提供者注册到了内网IP上怎么处理!