博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++实现获取本机机器名及外网IP代码
阅读量:4966 次
发布时间:2019-06-12

本文共 1960 字,大约阅读时间需要 6 分钟。

#include "stdafx.h"#include 
#include
#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 0;} int 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 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 0;} int GetInternetIP(){ char buf[MAX_PATH] = {0}; //把网页中读出的数据放在此处 char chTempIp[128] = {0}; char chIP[64] = {0}; //最终存放IP在此 //将网页数据写入c:\i.ini文件中 URLDownloadToFile(0, "http://iframe.ip138.com/ic.asp", "c:\\i.ini", 0, NULL); FILE *fp = fopen("c:\\i.ini", "r"); if (fp != NULL) { // fseek(fp, 0, SEEK_SET); fread(buf, 1, 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 = 0; i < nBuflen; i++) { chIP[i] = chTempIp[i+1]; //如果发现有 ] 则截断 if (chTempIp[i] == ']') { chIP[i-1] = '\0'; //printf("外网IP: %s\n", chIP); } } } } printf("外网IP: %s\n", chIP); remove("c:\\i.ini"); return 0; }

转载于:https://www.cnblogs.com/lizs/p/3757696.html

你可能感兴趣的文章
python 多进程和多线程的区别
查看>>
sigar
查看>>
iOS7自定义statusbar和navigationbar的若干问题
查看>>
[Locked] Wiggle Sort
查看>>
deque
查看>>
Setting up a Passive FTP Server in Windows Azure VM(ReplyCode: 227, Entering Passive Mode )
查看>>
Python模块调用
查看>>
委托的调用
查看>>
c#中从string数组转换到int数组
查看>>
数据模型(LP32 ILP32 LP64 LLP64 ILP64 )
查看>>
java小技巧
查看>>
POJ 3204 Ikki's Story I - Road Reconstruction
查看>>
【BZOJ】2959: 长跑(lct+缩点)(暂时弃坑)
查看>>
iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
查看>>
toad for oracle中文显示乱码
查看>>
SQL中Group By的使用
查看>>
错误org/aopalliance/intercept/MethodInterceptor解决方法
查看>>
【设计模式】工厂模式
查看>>
两个表格中数据不用是一一对应关系--来筛选不同数据,或者相同数据
查看>>
客户数据库出现大量cache buffer chains latch
查看>>