社区
Linux/Unix社区
帖子详情
如何得到本机的ip地址
ww7109
2004-03-25 10:35:24
我用gethostname 和 gethostbyname 两函数得到本机IP
地址,却总是得到127.0.0.1
请问如何得到本机IP地址
...全文
80
4
打赏
收藏
如何得到本机的ip地址
我用gethostname 和 gethostbyname 两函数得到本机IP 地址,却总是得到127.0.0.1 请问如何得到本机IP地址
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bmw1981bmw
2004-03-25
打赏
举报
回复
^o^
ww7109
2004-03-25
打赏
举报
回复
sorry 无法结帖,给分
ww7109
2004-03-25
打赏
举报
回复
谢谢
bmw1981bmw
2004-03-25
打赏
举报
回复
先声明这些代码不是我自己写的,是以前本版的一个贴上的
一起感谢原作者
#include <stdio.h>
#include <string.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <net/if_arp.h>
#include <net/ethernet.h>
#include <signal.h>
#include <netinet/ip.h>
struct in_addr myself, mymask,broad;
int fd_arp; /* socket fd for receive packets */
struct ifreq ifr; /* ifr structure */
main (int argc, char* argv[]) {
char device[32]; /* ethernet device name */
struct sockaddr from, to;
int fromlen;
struct sockaddr_in *sin_ptr;
u_char *ptr;
int n;
strcpy(device, "eth0");
// if ((fd_arp = socket(AF_INET, SOCK_PACKET, htons(0x0806))) < 0) {
if ((fd_arp = socket(AF_INET,SOCK_STREAM,0)) < 0) {
perror( "arp socket error");
exit(-1);
}
strcpy(ifr.ifr_name, device);
/* ifr.ifr_addr.sa_family = AF_INET; */
/* get ip address of my interface */
if (ioctl(fd_arp, SIOCGIFADDR, &ifr) < 0) {
perror("ioctl SIOCGIFADDR error");
exit(-1);
}
sin_ptr = (struct sockaddr_in *)&ifr.ifr_addr;
myself = sin_ptr->sin_addr;
/* get network mask of my interface */
if (ioctl(fd_arp, SIOCGIFNETMASK, &ifr) < 0) {
perror("ioctl SIOCGIFNETMASK error");
exit(-1);
}
sin_ptr = (struct sockaddr_in *)&ifr.ifr_addr;
mymask = sin_ptr->sin_addr;
/* get broadcast addr of my interface */
if (ioctl(fd_arp, SIOCGIFBRDADDR, &ifr) < 0) {
perror("ioctl SIOCGIFNETMASK error");
exit(-1);
}
sin_ptr = (struct sockaddr_in *)&ifr.ifr_broadaddr;
broad = sin_ptr->sin_addr;
/* get mac address of the interface */
if (ioctl(fd_arp, SIOCGIFHWADDR, &ifr) < 0) {
perror("ioctl SIOCGIFHWADDR error");
exit(-1);
}
ptr = (u_char *)&ifr.ifr_ifru.ifru_hwaddr.sa_data[0];
printf( "request mac %02x:%02x:%02x:%02x:%02x:%02x\n ",
*ptr, *(ptr + 1), *(ptr + 2), *(ptr + 3),
*(ptr + 4), *(ptr + 5) );
printf( "request netmask:%s \n", inet_ntoa(mymask));
printf( "request IP:%s\n", inet_ntoa(myself));
printf( "request broadcast:%s\n", inet_ntoa(broad));
exit(0);
}
查看
本机
IP地址
只需要在cmd命令提示符中输入:ipconfig 命令,下面将为你详细的介绍怎么查看
本机
IP地址
的详细步骤和方法。
Qt获取
本机
的
ip地址
、MAC地址
方法1: 获取
ip地址
: QString getHostIpAddress() { QString strIpAddress; QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses(); // 获取第一个本主机的IPv4地址 int nListSize = ipA...
怎么查看自己的
IP地址
?
本机
ip地址
查询方法介绍
但许多人对如何查询
本机
的
IP地址
并不清楚。本文将介绍
IP地址
的基础知识以及查询
本机
IP地址
的方法。
本机
ip地址
查询 电脑
本机
ip地址
查询
互联网里面提到的
ip地址
指的是由网络运营商提供的
ip地址
,并不是上面所说到的在路由器情况可以修改的
本机
ip地址
,那么,对于互联网状态
本机
ip地址
怎么查询呢?方法为:在开始菜单里面打开运行窗口,然后输入“cmd”,接着在打开的命令提示符窗口输入“ipconfig /all”,就能够查看
本机
ip地址
了,而且是非常齐全的。1、 大家可以在百度搜索框直接ip,就能查看到自己在互联网里面的
本机
ip地址
。,
本机
ip地址
查询方法是怎样的呢?2、 或者可以登录一些
ip地址
查询网站也是可以很快速查询
本机
ip地址
的。
怎么查看
本机
的
IP地址
怎么查看
本机
的
IP地址
1.win+r打开运行界面,输入cmd,进入命令界面 2.输入命令"ipconfig"即可查看
Ip地址
。ipv4后面对应的地址就是你
本机
的
ip地址
的 附:在android虚拟机上不能使用localhost和127.0.0.1来获取主机的地址,因为localhost和127.0.0.1获取的是android虚拟机上的虚拟机地址。 ...
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章