上代码:

 #include "stdafx.h"
#include <WINSOCK2.H>
#include <urlmon.h> #pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "urlmon.lib") #define MAX_SIZE 1024 int GetLocalIP();
int GetInternetIP(); int main(int argc, char* argv[])
{
GetLocalIP();
GetInternetIP();
return ;
} int GetLocalIP()
{
WSADATA wsaData;
int err = WSAStartup(MAKEWORD(, ), &wsaData);
if (err != )
{
return err;
} char szHostName[MAX_PATH] = {};
int nRetCode;
nRetCode = gethostname(szHostName, sizeof(szHostName)); char* lpLocalIP;
PHOSTENT hostinfo; if (nRetCode != )
{
return WSAGetLastError();
} hostinfo = gethostbyname(szHostName);
lpLocalIP = inet_ntoa(*(struct in_addr*)*hostinfo->h_addr_list); if (szHostName != NULL)
{
printf("主机名: %s\n", szHostName);
printf("本地IP: %s\n", lpLocalIP);
} WSACleanup();
return ;
} int GetInternetIP()
{
char buf[MAX_PATH] = {}; //把网页中读出的数据放在此处
char chTempIp[] = {};
char chIP[] = {}; //最终存放IP在此 //将网页数据写入c:\i.ini文件中
URLDownloadToFile(, "http://iframe.ip138.com/ic.asp", "c:\\i.ini", , NULL); FILE *fp = fopen("c:\\i.ini", "r");
if (fp != NULL)
{
//
fseek(fp, , SEEK_SET);
fread(buf, , MAX_PATH, fp);
fclose(fp); //在buf中查找 [ 的位置, iIndex是buf中从[开始剩下的字符串,包括[这个字符串
char* iIndex = strstr(buf, "[");
if (iIndex)
{
sprintf(chTempIp, "%s", iIndex);
int nBuflen = strlen(chTempIp); for (int i = ; i < nBuflen; i++)
{
chIP[i] = chTempIp[i+]; //如果发现有 ] 则截断
if (chTempIp[i] == ']')
{
chIP[i-] = '\0';
//printf("外网IP: %s\n", chIP);
}
}
} } printf("外网IP: %s\n", chIP);
remove("c:\\i.ini"); return ; }

【原创】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. Lumen开发:Lumen的异常处理机制

    版权声明:本文为博主原创文章,未经博主允许不得转载. Lumen的核心类Application引用了专门用于异常处理的RegistersExceptionHandlers, class Applica ...

  2. Hibernate 表连接hql语句

    现有两个表 user 表 和 VIPcard 表 UserVo  user VIPcardVo 中含有 UserVo user select v from VIPCardVo v left join ...

  3. sqlserver删除所有表

    --/第1步**********删除所有表的外键约束*************************/ DECLARE c1 cursor for select 'alter table ['+ o ...

  4. Convex combination

    en.wikipedia.org/wiki/Convex_combination 凸组合 In convex geometry, a convex combination is a linear co ...

  5. Python菜鸟之路:Python基础-操作缓存memcache、redis

    一.搭建memcached和redis 略,自己去百度吧 二.操作Mmecached 1. 安装API python -m pip install python-memcached 2. 启动memc ...

  6. python+NLTK 自然语言学习处理四:获取文本语料和词汇资源

    在前面我们通过from nltk.book import *的方式获取了一些预定义的文本.本章将讨论各种文本语料库 1 古腾堡语料库 古腾堡是一个大型的电子图书在线网站,网址是http://www.g ...

  7. 检出的maven项目没有“M”标识

    从SVN服务器上检出的项目,在项目左上角没有“M”标识 解决此方案有两种方法: 1.将检出的项目“删除”(不删除工作空间的项目),重新导入,选择“Maven 项目”,导入完成即可. 2.选中项目右键, ...

  8. activiti踩坑

    最近在学习activiti,偶然间遇到一个错误:加载引擎的时候报错,显示空指针错误,跟代码发现初始化配置文件返回为null.几经排查,可能是因为我发布流程后又清空了数据库数据导致的.然后我把表全部删除 ...

  9. (3)mac下"-bash: mysql: command not found"解决方案

    针对 mysql: command not found 输入命令 $ ln -s /usr/local/mysql/bin/mysql /usr/bin 假如你人品不好,被打脸了,提示你权限不够: l ...

  10. ARDUINO MEGA2560 经过ESP8266 WIFI模块上传温湿度数据到 OneNet 服务器

    简述 原来写了一个C++的wifi库但是发现用c++ arduino这小身板有点扛不住,代码比较大,使用String类型数据处理速度慢,而且很容易无缘无故跑飞.而且封装成库后使用还需要修改arduin ...