社区
Linux/Unix社区
帖子详情
如何得到本机的ip地址
ww7109
2004-03-25 10:35:24
我用gethostname 和 gethostbyname 两函数得到本机IP
地址,却总是得到127.0.0.1
请问如何得到本机IP地址
...全文
72
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地址
演示如何获得
本机
IP地址
,如何生成透明窗口,如何从任务条上隐藏
QT访问
本机
IP地址
QT访问
本机
IP地址
Java 获取
本机
IP地址
文章目录前言一、规则二、获取1.使用2.工具类 前言 在Java中如何准确的获取到
本机
IP地址
呢?网上大部分的做法是InetAddress.getLocalHost().getHostAddress()。这的确能获取到
本机
IP地址
,但是是不准确的。因为忽略了一个问题,网络环境是多变的,一台计算机不同的网卡有多个
IP地址
,Lan、WiFi、蓝牙、热点、虚拟机网卡等。 一、规则 127.xxx.xxx.xxx 属于 “loopback” 地址,即只能你自己的
本机
可见,就是
本机
地址,比较常见的有 127.0.0
如何用C语言获得
本机
IP地址
(获取一个ip或者获取所有ip)
如何用C语言获得
本机
IP地址
(获取一个ip或者获取所有ip)
如何用C语言获得
本机
IP地址
?(获取一个ip或者获取所有ip)
我们可以在cmd中敲入ipconfig来获取
本机
ip地址
,下面写个程序来获取
本机
ip地址
(结果相同): #include #include #pragma comment(lib,"ws2_32.lib") // 静态库 void findIP(char *ip) { WORD v = MAKEWORD(1, 1); WSADATA wsaData; char name
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章