获取与外网通讯的真实ip地址
来源:互联网 发布:小键盘软件下载 编辑:程序博客网 时间:2024/05/18 13:06
#define STR_DEFAULTHOST ("www.sohu.com")
char* GetIpByIndex(int nIndex)
{
char* pszIp = NULL;
PIP_ADAPTER_INFO pAdapterInfo;
PIP_ADAPTER_INFO pAdapter = NULL;
DWORD dwRetVal = 0;
pAdapterInfo = (IP_ADAPTER_INFO *) malloc(sizeof(IP_ADAPTER_INFO));
ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);
if (GetAdaptersInfo( pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW)
{
free(pAdapterInfo);
pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen);
}
if ((dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)) == NO_ERROR)
{
pAdapter = pAdapterInfo;
while (pAdapter)
{
printf("/tAdapter Addr: /t%02X:%02X:%02X:%02X:%02X:%02X/n", pAdapter->Address[0],
pAdapter->Address[1],
pAdapter->Address[2],
pAdapter->Address[3],
pAdapter->Address[4],
pAdapter->Address[5]);
printf("/tIP Address: /t%s/n", pAdapter->IpAddressList.IpAddress.String);
printf("/tIP Mask: /t%s/n", pAdapter->IpAddressList.IpMask.String);
printf("/tGateway: /t%s/n", pAdapter->GatewayList.IpAddress.String);
if (nIndex == pAdapter->Index)
{
pszIp = new char[strlen(pAdapter->IpAddressList.IpAddress.String) + 1];
strcpy(pszIp, pAdapter->IpAddressList.IpAddress.String);
break;
}
pAdapter = pAdapter->Next;
}
}
if (NULL != pAdapterInfo)
{
free(pAdapterInfo);
}
return pszIp;
}
char* GetTrueIp()
{
char* pszIp = NULL;
IPAddr ipAddr;
DWORD dwId = 0;
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
hostent* pRemoteHost = gethostbyname(STR_DEFAULTHOST);
if (NULL == pRemoteHost)
{
return pszIp;
}
memcpy(&ipAddr, pRemoteHost->h_addr_list[0], pRemoteHost->h_length);
GetBestInterface(ipAddr, &dwId);
pszIp = GetIpByIndex(dwId);
printf("ip:%s", pszIp);
return pszIp;
}
- 获取与外网通讯的真实ip地址
- 获取真实的IP地址
- 获取真实的IP地址
- 如何获取中国电信、网通、铁通的最新ip地址段
- ASP获取真实的IP地址
- 获取客户端的真实IP地址
- 获取远程客户端的真实IP地址
- 获取本机的真实IP地址
- 获取客户端的真实IP地址
- 获取客户端的真实IP地址
- 获取客户端的真实IP地址
- 获取客户真实的IP地址
- java获取真实的客户端IP地址
- jfinal --获取客户端真实的ip地址
- Java获取客户端的真实IP地址
- JSP 获取真实IP地址的代码
- Java获取客户端的真实IP地址
- JAVA获取请求的真实ip地址
- firefox dns解析很慢?
- The SQL Trace (ST05) – Quick and Easy
- 经典面试题
- JPA调研与JPA的总体思想和现有Hibernate、TopLink,JDO等ORM框架
- 请求转发和请问重定向的一些区别
- 获取与外网通讯的真实ip地址
- VC将屏幕区域保存为图片
- linux下 tar解压 gz解压 bz2等各种解压文件使用方法[转]
- 经纬度到平面坐标的相互转换
- 字符转换
- Struts2 学习笔记
- 版本命名规则 文件命名规则
- linux命令手册
- 编译运行ogre程序时“error C3859: virtual memory range for PCH exceeded; please recompile with a command line option of '-Zm120' or great