问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VC++ 获取本机IP

发布网友 发布时间:2022-05-02 11:47

我来回答

2个回答

热心网友 时间:2022-06-19 23:00

首先你要知道BYTE、WORD和DWORD分别是什么:
在VC6.0中BYTE、WORD和DWORD的定义分别是
typedef unsigned char BYTE; //一个字节,1 * 8位二进制数,范围 0 ~ 255
typedef unsigned short WORD; //两个字节,2 * 8位二进制数,范围0 ~ 65535
typedef unsigned long DWORD; //四个字节,4 * 8位二进制数,范围0 ~ 4294967295
可以看出,在存储的时候,1 DWORD = 2 WORD = 4 BYTE,
即 1 个DWORD 可以看成是 4 个连续的BYTE,也就是 unsigned char,
而 IP 地址刚好是 1 个DWORD,由 4 个 BYTE 组成,即常见的4段地址(比如192.168.0.1),这也就是为什么 IP 地址每段的数值都在0~255范围内(unsigned char)

现在回到代码:
unsigned char *pIP=(unsigned char*)&dwIP;
就是把 unsigned char* 指针 pIP 指向 dwIP 的第1个BYTE,所以, *(pIP+1)就指向dwIP的第2个BYTE,后面以此类推

对于inet_ntoa和inet_addr这两个函数,请自己百度一下就好了,相信你能看得懂

inet_ntoa():http://ke.baidu.com/view/4786779.htm
inet_addr():http://ke.baidu.com/view/569199.htm

热心网友 时间:2022-06-19 23:00

  获取本机ip实现过程:
  WSAStartup()。Windows Sockets Asynchronous的启动命令,Windows下的网络编程必须先启用本命令,不然,后续的操作都会报错:10093:WSAStartup() 调用未成功执行过。
  gethostname()获得本机名
  gethostbyname()获得本机网络信息,存储到struct hostent *指针中,返回给调用者
  从struct hostent结构体信息中,获取ip地址,转换成字符串输出
  参考代码 :
  #include "winsock2.h"
  #pragma comment(lib,"ws2_32.lib")
  int main(int argc, char* argv[])
  {
  WSADATA wsaData;
  char name[155];
  char *ip;
  PHOSTENT hostinfo;
  if ( WSAStartup( MAKEWORD(2,0), &wsaData ) == 0 )
  {
  if( gethostname ( name, sizeof(name)) == 0)
  {
  printf("hostname=%s\n", name );
  if((hostinfo = gethostbyname(name)) != NULL)
  {
  ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list); //得到地址字符串
  printf("local host ip: %s\n",ip);
  }
  }
  WSACleanup( );
  }
  return 0;
  }
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中美有什么经济冲突 杨凌衡水实验中学高中学费是多少 蒂芙尼珍珠项链怎么清洗和保养? tiffany&co 的缺点 如何保养蒂芙尼的项链? tiffany保养要多久时间 Tiffany珠宝需要多长时间保养? 人为什么活着,怎样活着都是无憾!! 孩子犟的不行家长怎么教育 有什么比较好用的游戏视频录制软件? 适用于Windows的10个好用的游戏录制软件 vc++如何获得计算机的名称和IP地址,用到哪些函数 用C语言编程显示主机IP地址! vc++ 定义IP地址的函数有那些? VC++黑客编程:如何获得IP地址和主机名 VC怎么取得本地IP地址 VC++如何获取本机的IP地址? VC中IP地址控件的使用 vc++ 显示ip地址方法 怎样用VC++编程显示本机的主机名和IP地址 vc2265打印机设置ip VC设置本机IP 婚姻如果不幸福,对自己接下来的生活有什么影响? 左小青宣布离婚,评论区意外和谐,这是怎么回事? 一段不堪回首的往事 折磨了我近20年的问题 请人生经验丰富或者婚姻生活美满的人士给与帮助 谢谢 女儿秀2亿元飞机,妻子马丽娟直播时,赵本山的豪宅,为何意外暴露? 她是国家级运动员,却意外成了春晚小品女神,还有个富豪老公,她是谁? 她曾是体操冠军,意外被姜文看中做演员,左小青如今过得怎样? 杨绛和杨澜的幸福婚姻,有这样一个共性,你知道吗? 结婚20年,无性婚姻10年,每天说不到10句话,这样的婚姻该如何继续? 美好幸福的婚姻是可以经营出来的,具体应该怎么做呢? 怎样用VC程序对交换机进行IP配置 VC中获得网络IP地址 VC中IP指针初始化 VC,怎么通过自己的ip地址搜索当前局域网内的其它在线的主机的ip地址呢? 怎么用紫外线鉴别蜜蜡真假 什么是老蜜蜡 紫外线真的能区分蜜蜡的真假吗 蜜蜡用紫外线灯照了什么样? 手机没有声音,但打电话出去能听到对方的声音该怎么解决? 我的手机就是能听见声音的时候说不了话 能说话的时候听不了声音... 钩针FPF.BPF是什么针法 钩针FU是什么意思? 怎样在南昌大学教务管理系统上获取个人课表 FV 与FVA的区别是什么啊 我的电脑通过路由器上网,不能进入南昌大学教务管理系统,别的网页都能进。出了什么问题?如何解决? 钩针5k是什么意思 南昌大学学分在哪查询 fv是什么的缩写意思? 怎么在南昌大学教务管理系统查成绩? 钩针2ch,10f,sl怎么钩? 南昌大学教务管理系统为什么不能创建对象?里面什么内容也没有!