请问 c语言怎样获取计算机ip地址啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问 c语言怎样获取计算机ip地址啊相关的知识,希望对你有一定的参考价值。

参考技术A struct in_addr addr;
hostent *pHost = ::gethostbyname("localhost");//在此写入你自己电脑主机名字
switch (pHost->h_addrtype)
case AF_INET:
printf("internet网络地址类型(AF_INET)\n");
break;
case AF_INET6:
printf("internet网络地址类型(AF_INET)\n");
break;
case AF_NETBios:
printf("netbios网络地址类型(AF_NETBIOS)\n");
break;
default:
printf("其它地址类型 %d\n", pHost->h_addrtype);
break;

printf("\t地址长度: %d(字节)\n", pHost->h_length);
addr.s_addr = *(u_long *) pHost->h_addr_list[0];
printf("\t第一个IP地址为: %s\n", inet_ntoa(addr));追问

嗯 谢谢

请问 这是你自己写的么

不好意思 我没看出获取公网ip的是哪一句

参考技术B 是自己的公网地址吧
一个简单的方法访问一个ip地址查询的网站然后匹配出自己的ip地址就可以了
参考技术C cmd ping命令

Linux 如何通过命令仅获取IP地址

一同事的朋友正在参加笔试,遇到这么一个问题让他帮忙解决,结果同事又找到我帮他搞定。真是感慨:通讯发达在某些方面来说,真不知是不是好事啊!题目大致如下所示,一般我们使用ifconfig查看网卡信息,请问你可以通过什么命令,让其只输出IP地址192.168.42.128

clip_image001

看似简单的问题,实现起来也不是太简单。看看下面的思路吧

[root@DB-Server ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:9E:70:0E  
          inet addr:192.168.42.128  Bcast:192.168.42.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe9e:700e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:135 errors:0 dropped:0 overruns:0 frame:0
          TX packets:216 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14062 (13.7 KiB)  TX bytes:26007 (25.3 KiB)

 

[root@DB-Server ~]# ifconfig eth0 | grep "inet addr"
          inet addr:192.168.42.128  Bcast:192.168.42.255  Mask:255.255.255.0

到这一步非常简单,接下来就需要借助awk来实现了,如下所示,到此问题解决。

[root@DB-Server ~]# ifconfig eth0 | grep "inet addr" | awk \'{ print $2}\'
 
addr:192.168.42.128
 
[root@DB-Server ~]# ifconfig eth0 | grep "inet addr" | awk \'{ print $2}\' | awk -F: \'{print $2}\'
 
192.168.42.128

clip_image001[6]

以上是关于请问 c语言怎样获取计算机ip地址啊的主要内容,如果未能解决你的问题,请参考以下文章

请问在Linux中怎样利用mail命令给外网的计算机发送邮件?

怎样用go语言获取本地IP地址

php怎样获取客户端电脑物理地址

我用的DHCP分配一个单位的网络ip,但是我重启计算机后为啥还是这个ip啊

如何用javascript获取客户端的IP地址?

在c语言中,当处理大量数据时,常有stack overflow 或者runtime error等问题,请问怎样解决啊