上代码:

 #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. C语言合并两个集合(L,L1) 将L1中不在L中的元素插入到L线性表中

    void main(){ Sqlist L,L1; InitList(&L); InitList(&L1); ListInsert(&L, 1, 2); ListInsert( ...

  2. 解决xcode5升级后,Undefined symbols for architecture arm64:问题

    The issue is that the cocoapods have not been built for arm64 architecture yet thus they cannot be l ...

  3. 高次同余方程模板BabyStep-GiantStep

    /************************************* ---高次同余方程模板BabyStep-GiantStep--- 输入:对于方程A^x=B(mod C),调用BabySt ...

  4. sql server 2008 去除html标签

    由于商品详情数据库的字段是text,存放的是html,但是要求导出的商品详情中只是商品的描述,不要标签,原来打算先把数据导入excel中,然后利用java的正则去替换,结果由于商品详情太大,一个单元格 ...

  5. WCF基础之消息协定

    通常定义消息的架构,使用数据协定就够了,但是有时必须将类型精确映射到soap消息,方法两种:1.插入自定义soap标头:2.另一种是定义消息的头和正文的安全属性.消息协定通过MessageContra ...

  6. python解释器安装教程

    1. 首先,打开python的官网:python.org 2. 首页downloads下打开, 3. 最上边是两个最新的版本,长期计划,推荐使用python3,如果长期打算用p3,默认使用最新版本.如 ...

  7. Meeting-in-the-Middle (LA 2965)

    Meeting-in-the-Middle,又称“中途相遇法”.准确地说,它只是一种策略. 顺便说一下,这个算法真的很冷门! 结合这道题来讨论一下吧:LA 2965.ε(┬┬﹏┬┬)3 因为博主的英文 ...

  8. [转载] 把Nutch爬虫部署到Hadoop集群上

    http://f.dataguru.cn/thread-240156-1-1.html 软件版本:Nutch 1.7, Hadoop 1.2.1, CentOS 6.5, JDK 1.7 前面的3篇文 ...

  9. jetty源代码剖析

    近期使用jetty自己写了一个web server,如今闲了花了一天的时间看了一jetty的源代码,主要以server的启动为主线.进行了剖析,经过阅读对jetty的源代码大赞,写的简洁.清晰.架构也 ...

  10. 让Editplus支持sql语法高亮显示

    版权声明:作者:jiankunking 出处:http://blog.csdn.net/jiankunking 本文版权归作者和CSDN共同拥有,欢迎转载.但未经作者允许必须保留此段声明,且在文章页面 ...