c++ 获取外网ip地址
来源:互联网 发布:饥荒巨人的统治mac版 编辑:程序博客网 时间:2024/05/20 04:50
// 外部调用 ==============================================networkip.GetLocalIP();string retip = networkip.GetInternetIP();// 封装实现 ==============================================class getnetworkip{public:getnetworkip();~getnetworkip();std::string GetLocalIP();std::string GetInternetIP();private:};//////////////////////////////////////////////////////////////////////////#include <WINSOCK2.H>#include <urlmon.h>#include <string> using namespace std;#pragma comment(lib, "ws2_32.lib")#pragma comment(lib, "urlmon.lib")#define MAX_SIZE 1024getnetworkip::getnetworkip(){}getnetworkip::~getnetworkip(){}std::string getnetworkip::GetLocalIP(){WSADATA wsaData;int err = WSAStartup(MAKEWORD(2, 0), &wsaData);if (err != 0){return "err";}char szHostName[MAX_PATH] = { 0 };int nRetCode;nRetCode = gethostname(szHostName, sizeof(szHostName));char* lpLocalIP;PHOSTENT hostinfo;if (nRetCode != 0){return "errcode";}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 lpLocalIP;}std::string getnetworkip::GetInternetIP(){char buf[2048] = { 0 }; //把网页中读出的数据放在此处char chURL[128] = { "http://www.whatismyip.com.tw/" };//将网页数据写入c:\i.ini文件中URLDownloadToFileA(0, chURL, "c:\\i.ini", 0, NULL);string str_ip("");FILE *fp = fopen("c:\\i.ini", "rb+");if (fp != NULL){//fseek(fp, 0, SEEK_SET);fread(buf, 2048, 1, fp);fclose(fp);//在buf中查找 [ 的位置, iIndex是buf中从[开始剩下的字符串,包括[这个字符串 == string str = buf;int nstart = str.find("<h2>");int nend = str.find("</h2>");int lenth = nend - nstart - 4;str_ip = str.substr(nstart + 4, lenth);}remove("c:\\i.ini");return str_ip;}
0 0
- 获取外网IP地址
- 获取外网IP地址
- [C#]获取IP地址以及获取地址
- linux C获取IP地址
- C函数获取IP地址
- linux c获取IP地址
- [objective-c]获取ip地址
- C/C++获取IP地址
- 获取外网的动态IP地址
- 获取外网的IP地址
- MFC C++ 获取外网IP地址
- 如何获取外网IP地址
- Java获取外网ip地址
- c++ 获取外网ip地址
- c#获取外网IP地址
- Android获取外网IP地址
- 获取外网ip地址的url
- Android获取外网IP地址
- Spring 3实现定时任务
- 【算法】链式前向星的静态链表实现
- html基本语言
- Android开发常用网站汇总
- google perftools分析程序性能
- c++ 获取外网ip地址
- 泰勒展开式
- EasyDarwin开源社区 短视频拍摄项目Github地址
- 从小米5看雷军式“互联网思维”的黄昏
- 将jar发布到maven中央仓库小记
- C语言之memcpy函数
- HDU 1412 参加聚会 (map+树形dp)
- C++之pair(粘的别人的帖子)
- 通用JdbcDao更新,增加动态数据源,支持权重和读写分离