• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c语言c++实现查看本地ip,外网ip,本地主机名,查看http网址对应的ip ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
/*******************************************************************************
作者						:邓中强
Email						:[email protected]
QQ  						:1246747572
博客						:http://www.cnblogs.com/dzqdzq/
时间						:2014/01/01

功能
*******************************************************************************/
#include "cstdio"
#include "cstring"
#include "string"
#include "winsock2.h"
#pragma comment(lib, "urlmon.lib")
using namespace std;

// 获取本机ip
char* getlocal_ip()
{
	char *ret;
	char host_name[256] = "";
	WSADATA wsaData;
	WSAStartup(0x101, &wsaData);

	if (!gethostname(host_name, 256))
	{
		ret = inet_ntoa(*((struct in_addr*)gethostbyname(host_name)->h_addr));
	}

	WSACleanup();
	return ret;
}

// 获取本机名
char* getlocal_name(char *name,int len)
{
	WSADATA wsaData;
	WSAStartup(0x101, &wsaData);
	gethostname(name, len);
	WSACleanup();
	return name;
}

// 获取公网ip (也叫外网ip)
char* getPub_ip(char *ip)
{
	const char* dest = "<code>";
	const char* dest1 = "</code>";
	const char* szFileName = "D:/ip.txt";
	if (URLDownloadToFile(NULL, "http://www.ip.cn/", szFileName, 0, NULL) == S_OK)
	{
		FILE *fp = fopen(szFileName, "r");
		if (fp)
		{
			char line[512];
			while (fgets(line,512,fp))
			{
				char *fd = strstr(line, dest);
				if (fd)
				{
					char* star = fd + strlen(dest);
					strncpy(ip,star,strstr(star,dest1)-star);//16
					break;
				}
			}
			fclose(fp);
			remove(szFileName);// 删除文件
		}
	}
	
	return ip;
}

// 获取某个网站的ip
char* getipFromHttp(char *http,char *result)
{
	const char* fileName = "D:/1.txt";
	string cmd = string("ping ") + http + string(">") + fileName;
	system(cmd.c_str());
	FILE *fp = fopen(fileName,"r");
	if (fp)
	{
		char line[512];
		while (fgets(line,512,fp))
		{
			char *fd = strchr(line,'[');
			if (fd)
			{
				char *star = fd + 1;
				strncpy(result, star, strchr(star,']')-star);
				break;
			}
		}
		fclose(fp);
		remove(fileName);
	}
	return NULL;
}

int main()
{
	char name[28] = "";
	printf("本地IP:%s\n", getlocal_ip());

	printf("主机名:%s\n", getlocal_name(name, 28));
	char ip[25] = "";
	printf("外网:%s\n", getPub_ip(ip));

	char *http = "www.taobao.com";
	getipFromHttp(http, ip);
	printf("%s --DNS--> %s\n",http,ip); 
	system("pause");
	return 0;
}

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
使用纯C语言开始win32sdk编程发布时间:2022-07-14
下一篇:
C#与面向对象编程语言发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap