上代码:

  1. #include "stdafx.h"
  2. #include <WINSOCK2.H>
  3. #include <urlmon.h>
  4.  
  5. #pragma comment(lib, "ws2_32.lib")
  6. #pragma comment(lib, "urlmon.lib")
  7.  
  8. #define MAX_SIZE 1024
  9.  
  10. int GetLocalIP();
  11. int GetInternetIP();
  12.  
  13. int main(int argc, char* argv[])
  14. {
  15. GetLocalIP();
  16. GetInternetIP();
  17. return ;
  18. }
  19.  
  20. int GetLocalIP()
  21. {
  22. WSADATA wsaData;
  23. int err = WSAStartup(MAKEWORD(, ), &wsaData);
  24. if (err != )
  25. {
  26. return err;
  27. }
  28.  
  29. char szHostName[MAX_PATH] = {};
  30. int nRetCode;
  31. nRetCode = gethostname(szHostName, sizeof(szHostName));
  32.  
  33. char* lpLocalIP;
  34. PHOSTENT hostinfo;
  35.  
  36. if (nRetCode != )
  37. {
  38. return WSAGetLastError();
  39. }
  40.  
  41. hostinfo = gethostbyname(szHostName);
  42. lpLocalIP = inet_ntoa(*(struct in_addr*)*hostinfo->h_addr_list);
  43.  
  44. if (szHostName != NULL)
  45. {
  46. printf("主机名: %s\n", szHostName);
  47. printf("本地IP: %s\n", lpLocalIP);
  48. }
  49.  
  50. WSACleanup();
  51. return ;
  52. }
  53.  
  54. int GetInternetIP()
  55. {
  56. char buf[MAX_PATH] = {}; //把网页中读出的数据放在此处
  57. char chTempIp[] = {};
  58. char chIP[] = {}; //最终存放IP在此
  59.  
  60. //将网页数据写入c:\i.ini文件中
  61. URLDownloadToFile(, "http://iframe.ip138.com/ic.asp", "c:\\i.ini", , NULL);
  62.  
  63. FILE *fp = fopen("c:\\i.ini", "r");
  64. if (fp != NULL)
  65. {
  66. //
  67. fseek(fp, , SEEK_SET);
  68. fread(buf, , MAX_PATH, fp);
  69. fclose(fp);
  70.  
  71. //在buf中查找 [ 的位置, iIndex是buf中从[开始剩下的字符串,包括[这个字符串
  72. char* iIndex = strstr(buf, "[");
  73. if (iIndex)
  74. {
  75. sprintf(chTempIp, "%s", iIndex);
  76. int nBuflen = strlen(chTempIp);
  77.  
  78. for (int i = ; i < nBuflen; i++)
  79. {
  80. chIP[i] = chTempIp[i+];
  81.  
  82. //如果发现有 ] 则截断
  83. if (chTempIp[i] == ']')
  84. {
  85. chIP[i-] = '\0';
  86. //printf("外网IP: %s\n", chIP);
  87. }
  88. }
  89. }
  90.  
  91. }
  92.  
  93. printf("外网IP: %s\n", chIP);
  94. remove("c:\\i.ini");
  95.  
  96. return ;
  97.  
  98. }

【原创】C++实现获取本机机器名及外网IP代码的更多相关文章

  1. java获取本机机器名

    java获取本机机器名 InetAddress.getLocalHost().getHostName().toString();

  2. 判断内网机器的真实外网IP或域名的方法总结

    在内渗透中有时需要在某台WEB服务器中留下后门,可以通过内网IP建立IPC连接,但还需要获知外网IP才能访问Wbshell,在无网关权限的情况下,我总结了有如下方法: nslookup myip.op ...

  3. linux下获取外网IP

    使用阿里云或者有多个网卡IP的机器需要取外网IP时,可以用下面这种 wget -qO - ifconfig.co 更多方法参考:https://yq.aliyun.com/ziliao/105999

  4. 获取本机内网、外网ip(C++)<转>

    基础知识 电脑在局域网内,通过网关/路由器连接到Internet则ip分为内网ip.外网ip.通过ipconfig得到的为局域网ip. 电脑直接拨号连接等,则本机通过ipconfig得到的就是外网ip ...

  5. Android 获取本地外网IP、内网IP、计算机名等信息

    一.获取本地外网IP public static String GetNetIp() { URL infoUrl = null; InputStream inStream = null; try { ...

  6. C#获取外网IP、本机MAC地址及Ping的实现

    原文 获取外网IP, C#获取本机的MAC地址,C#通过编程方式实现Ping 获取外网IP地址 思路是通过WebRequest连接一些网上提供IP查询服务的网站,下载到含有你的IP的网页,然后用正则表 ...

  7. c#中如何获取本机用户名、MAC地址、IP地址、硬盘ID、CPU序列号、系统名称、物理内存

    我们在利用C#开发桌面程序(Winform)程序的时候, 经常需要获取一些跟系统相关的信息, 以下这些代码获取能有些用处. c#中如何获取本机用户名.MAC地址.IP地址.硬盘ID.CPU序列号.系统 ...

  8. C#获取本机内网外网IP

    using System.Net; # region 获取内.外网Ip /// <summary> /// 获取本地ip地址,优先取内网ip /// </summary> pu ...

  9. C#获取本机的外网IP

    /// <summary> /// 功能:获取本地的外网IP地址 /// 作者:黄海 /// 时间:2016-07-22 /// </summary> /// <retu ...

随机推荐

  1. Web存储使用详解(本地存储、会话存储)

    Web存储使用详解(本地存储.会话存储)1,Web存储介绍HTML5的Web存储功能是让网页在用户计算机上保存一些信息.Web存储又分为两种:(1)本地存储,对应 localStorage 对象.用于 ...

  2. python入门课程 第3章 Python变量和数据类型

    第3章 Python变量和数据类型3-1 Python中数据类型计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形 ...

  3. python 基础 9.5 数据库连接池

      一. 数据库连接池    python 编程中可以使用MySQLdb 进行数据库的连接及诸如查询,插入,更新等操作,但是每次连接mysql 数据库请求时,都是独立的去请求访问,相当浪费资源,而且访 ...

  4. Jmeter 02 JMeter体系结构

    1. Jmeter简介 2. Jmeter体系结构 3. Jmeter运行原理 4. Jmeter测试计划要素 5. Jmeter环境介绍 6. Jmeter与Loadrunner异同

  5. poj 3714 Raid【(暴力+剪枝) || (分治法+剪枝)】

    题目:  http://poj.org/problem?id=3714 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27048#prob ...

  6. tomcat日志按天切分

    1. 下载工具cronolog wget http://cronolog.org/download/cronolog-1.6.2.tar.gz 这是网上流传的下载地址,好像没用,所以需要自己去网上找. ...

  7. Frobenius Norm

    http://mathworld.wolfram.com/FrobeniusNorm.html

  8. Python菜鸟之路:Python基础-类(1)——概念

    什么是类? 在python中,把具有相同属性和方法的对象归为一个类(class).类是对象的模板或蓝图,类是对象的抽象化,对象是类的实例化.类不代表具体的事物,而对象表示具体的事物. 类的创建 cla ...

  9. centos6.9下设置nginx服务开机自动启动

    首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令: vi /etc/init.d/nginx 在脚本中添加如下命令: #!/bin/sh # # nginx - ...

  10. struts2 获取表单数据封装到list和map集合

    一.获取封装表单数据到list集合 示例 获取用户输入的用户名和密码并输出用户名. jsp页面 list[0]表示list中的第一个user对象 Java代码 二.封装表单数据到map集合 示例 获取 ...