【原创】C++实现获取本机机器名及外网IP代码
上代码:
- #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代码的更多相关文章
- java获取本机机器名
java获取本机机器名 InetAddress.getLocalHost().getHostName().toString();
- 判断内网机器的真实外网IP或域名的方法总结
在内渗透中有时需要在某台WEB服务器中留下后门,可以通过内网IP建立IPC连接,但还需要获知外网IP才能访问Wbshell,在无网关权限的情况下,我总结了有如下方法: nslookup myip.op ...
- linux下获取外网IP
使用阿里云或者有多个网卡IP的机器需要取外网IP时,可以用下面这种 wget -qO - ifconfig.co 更多方法参考:https://yq.aliyun.com/ziliao/105999
- 获取本机内网、外网ip(C++)<转>
基础知识 电脑在局域网内,通过网关/路由器连接到Internet则ip分为内网ip.外网ip.通过ipconfig得到的为局域网ip. 电脑直接拨号连接等,则本机通过ipconfig得到的就是外网ip ...
- Android 获取本地外网IP、内网IP、计算机名等信息
一.获取本地外网IP public static String GetNetIp() { URL infoUrl = null; InputStream inStream = null; try { ...
- C#获取外网IP、本机MAC地址及Ping的实现
原文 获取外网IP, C#获取本机的MAC地址,C#通过编程方式实现Ping 获取外网IP地址 思路是通过WebRequest连接一些网上提供IP查询服务的网站,下载到含有你的IP的网页,然后用正则表 ...
- c#中如何获取本机用户名、MAC地址、IP地址、硬盘ID、CPU序列号、系统名称、物理内存
我们在利用C#开发桌面程序(Winform)程序的时候, 经常需要获取一些跟系统相关的信息, 以下这些代码获取能有些用处. c#中如何获取本机用户名.MAC地址.IP地址.硬盘ID.CPU序列号.系统 ...
- C#获取本机内网外网IP
using System.Net; # region 获取内.外网Ip /// <summary> /// 获取本地ip地址,优先取内网ip /// </summary> pu ...
- C#获取本机的外网IP
/// <summary> /// 功能:获取本地的外网IP地址 /// 作者:黄海 /// 时间:2016-07-22 /// </summary> /// <retu ...
随机推荐
- Web存储使用详解(本地存储、会话存储)
Web存储使用详解(本地存储.会话存储)1,Web存储介绍HTML5的Web存储功能是让网页在用户计算机上保存一些信息.Web存储又分为两种:(1)本地存储,对应 localStorage 对象.用于 ...
- python入门课程 第3章 Python变量和数据类型
第3章 Python变量和数据类型3-1 Python中数据类型计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形 ...
- python 基础 9.5 数据库连接池
一. 数据库连接池 python 编程中可以使用MySQLdb 进行数据库的连接及诸如查询,插入,更新等操作,但是每次连接mysql 数据库请求时,都是独立的去请求访问,相当浪费资源,而且访 ...
- Jmeter 02 JMeter体系结构
1. Jmeter简介 2. Jmeter体系结构 3. Jmeter运行原理 4. Jmeter测试计划要素 5. Jmeter环境介绍 6. Jmeter与Loadrunner异同
- poj 3714 Raid【(暴力+剪枝) || (分治法+剪枝)】
题目: http://poj.org/problem?id=3714 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27048#prob ...
- tomcat日志按天切分
1. 下载工具cronolog wget http://cronolog.org/download/cronolog-1.6.2.tar.gz 这是网上流传的下载地址,好像没用,所以需要自己去网上找. ...
- Frobenius Norm
http://mathworld.wolfram.com/FrobeniusNorm.html
- Python菜鸟之路:Python基础-类(1)——概念
什么是类? 在python中,把具有相同属性和方法的对象归为一个类(class).类是对象的模板或蓝图,类是对象的抽象化,对象是类的实例化.类不代表具体的事物,而对象表示具体的事物. 类的创建 cla ...
- centos6.9下设置nginx服务开机自动启动
首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令: vi /etc/init.d/nginx 在脚本中添加如下命令: #!/bin/sh # # nginx - ...
- struts2 获取表单数据封装到list和map集合
一.获取封装表单数据到list集合 示例 获取用户输入的用户名和密码并输出用户名. jsp页面 list[0]表示list中的第一个user对象 Java代码 二.封装表单数据到map集合 示例 获取 ...