VC编程中用什么函数可以显示所在计算机的宽带IP
答案:2 悬赏:30 手机版
解决时间 2021-05-06 07:57
- 提问者网友:别再叽里呱啦
- 2021-05-05 14:41
VC编程中用什么函数可以显示所在计算机的宽带IP
最佳答案
- 五星知识达人网友:十年萤火照君眠
- 2021-05-05 15:09
#include <iphlpapi.h> #pragma comment (lib, "iphlpapi") //m_list是一个ListView控件变量 m_list.ModifyStyle(0, LVS_REPORT); m_list.ModifyStyleEx(0, LVS_EX_GRIDLINES); m_list.InsertColumn(0, _T("IP 列表"), LVCFMT_LEFT, 150, 0); m_list.InsertColumn(1, _T("网络描述"), LVCFMT_LEFT, 200, 0); DWORD dwRow = 0; PIP_ADAPTER_INFO pIpAdapterInfo = new IP_ADAPTER_INFO; ULONG ulSize = sizeof(IP_ADAPTER_INFO); if (GetAdaptersInfo(pIpAdapterInfo, &ulSize) != NO_ERROR) { delete pIpAdapterInfo; pIpAdapterInfo = (PIP_ADAPTER_INFO)new BYTE[ulSize]; } if (GetAdaptersInfo(pIpAdapterInfo, &ulSize) == NO_ERROR) { PIP_ADAPTER_INFO pCur = pIpAdapterInfo; while (pCur) { CString strIp, strText; MultiByteToWideChar(CP_ACP, 0, pCur->IpAddressList.IpAddress.String, -1, strIp.GetBuffer(16), 16); strIp.ReleaseBuffer(); strText.Format(_T("IP Address(%d): %s"), dwRow, strIp); m_list.InsertItem(dwRow, NULL); m_list.SetItemText(dwRow, 0, strText); DWORD dwSize = strlen(pCur->Description) + 1; MultiByteToWideChar(CP_ACP, 0, pCur->Description, -1, strText.GetBuffer(dwSize), dwSize); strText.ReleaseBuffer(); m_list.SetItemText(dwRow++, 1, strText); pCur = pCur->Next; } } delete pIpAdapterInfo; 这段代码可以放在OnInitDialog中。验证ADSL的IP地址是否正确,可以到CMD控制台中,键入:ipconfig /all
全部回答
- 1楼网友:拾荒鲤
- 2021-05-05 16:29
楼上的有这么麻烦么
包含#include <winsock2.h> #pragma comment( lib, "Ws2_32.lib" )
获取IP的代码:
WSADATA wsaData = {0}; // 初始化网络环境 if ( !::WSAStartup( MAKEWORd(2,2), &wsaData ) ) { char hostname[MAX_PATH] = {0}; if ( !::gethostname( hostname, MAX_PATH ) ) // 获取本机计算机名称 { struct hostent *pHost = ::gethostbyname( hostname ); // 获取主机信息 if ( pHost ) { char *pAddr = ::inet_ntoa( *( in_addr * )pHost->h_addr_list[0] ); // 解析IP // 这里pAddr就是本机IP了 } } ::WSACleanup(); // 释放网络环境 }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯