VC----如何自动获取本机IP地址?
2012-11-19 10:08
429 查看
//#include<winsock2.h>
//连接 ws2_32.lib
void CCWebClientDlg::InitSocket()
{
WORD wVersionRequested;
WSADATA wsaData;
char name[255];
CString ip;
int err;
PHOSTENT hostinfo;
wVersionRequested = MAKEWORD( 1, 1 );//版本号1.1
//1.加载套接字库
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return;
}
//判断是否我们请求的winsocket版本,如果不是
//则调用WSACleanup终止winsocket的使用并返回
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup( );
return;
}///...if
if ( err == 0 )
{
if( gethostname ( name, sizeof(name)) == 0)
{
if((hostinfo = gethostbyname(name)) != NULL)
{
ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
}
}
WSACleanup( );
}
SetDlgItemText(IDC_EDIT_PORT,name);//name里是本机名
SetDlgItemText(IDC_IPADDRESS1,ip); //ip中是本机IP
//连接 ws2_32.lib
void CCWebClientDlg::InitSocket()
{
WORD wVersionRequested;
WSADATA wsaData;
char name[255];
CString ip;
int err;
PHOSTENT hostinfo;
wVersionRequested = MAKEWORD( 1, 1 );//版本号1.1
//1.加载套接字库
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return;
}
//判断是否我们请求的winsocket版本,如果不是
//则调用WSACleanup终止winsocket的使用并返回
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup( );
return;
}///...if
if ( err == 0 )
{
if( gethostname ( name, sizeof(name)) == 0)
{
if((hostinfo = gethostbyname(name)) != NULL)
{
ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
}
}
WSACleanup( );
}
SetDlgItemText(IDC_EDIT_PORT,name);//name里是本机名
SetDlgItemText(IDC_IPADDRESS1,ip); //ip中是本机IP
相关文章推荐
- VC----如何自动获取本机IP地址?
- VC----如何自动获取本机IP地址?
- 如何最快获取google ip 地址
- VC获取本机IP地址
- VC获取IP、子网掩码、网关、广播地址
- Fedora/centos Linux如何设置网卡自动获取网络地址
- Objective-c语言_用字符串方法和数组如何获取物理IP地址
- 如何使用Linux命令 自动获取IP
- 如何根据IP自动获取当地的天气预报信息
- 如何获取本地局域网内的可用IP地址
- 如何在Node.js中获取本机IP地址
- 如何用C语言获得本机IP地址?(获取一个ip或者获取所有ip)
- 如何获取本地局域网内的可用IP地址
- 如何获取 docker 容器(container)的 ip 地址(转)
- 如何让jsp和js获取来源页地址和ip原理及代码
- 浅析如何使用busybox的udhcpc实现开发板ip和dns自动获取
- 批处理自动获取IP 地址
- 在VC下动态获取主机名与外网IP地址,
- Fedora Linux如何设置网卡自动获取网络地址
- C++/VC 获取本机IP地址