VC中获取主机名和IP地址的方法
来源:互联网 发布:1hhhh升级域名访问 编辑:程序博客网 时间:2024/05/18 09:07
1、创建一个对话框应用程序,加载windows socket的动态连接库,方法为在对话框的InitDialog函数中增加如下代码:
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(2,0);
err = WSAStartup(wVersionRequested,&wsaData);
if(err != 0)
{
return err;
}
if(LOBYTE(wsaData.wVersion != 2) || HIBYTE(wsaData.wVersion) != 0)
{
WSACleanup();
return WSAVERNOTSUPPORTED;
}
2、在对话框上增加两个编辑框资源,并为其增加成员变量,名称分别为m_sHostName;m_sIPAddress,类型为CString。
3、添加两个私有函数,分别用来获取主机名和IP,函数如下
int CTestWinSockDlg::GetLocalHostName(CString& sHostName)
{
char szHostName[256];
int nRetCode;
nRetCode = gethostname(szHostName,sizeof(szHostName))//调用API来获得主机名;
if(nRetCode != 0)
{
return WSAGetLastError();
}
sHostName = szHostName;
return 0;
}
int CTestWinSockDlg::GetIPAddress(const CString& sHostName,CString& sIPAddress)
{
struct hostent FAR* lpHostEnt = gethostbyname(sHostName);
if(lpHostEnt == NULL)
{
return WSAGetLastError();
}
LPSTR lpAddr = lpHostEnt->h_addr_list[0];
if(lpAddr)
{
struct in_addr inAddr;
memmove(&inAddr,lpAddr,4);
sIPAddress = inet_ntoa(inAddr);
if(sIPAddress.IsEmpty())
{
return 0;
}
}
return 0;
}
4、在InitDialog函数中加入如下代码,主机名和IP就会显示在对话框的编辑框中;
int nRetCode;
nRetCode = GetLocalHostName(m_sHostName);
nRetCode = GetIPAddress(m_sHostName,m_sIPAddress);
UpdateData(FALSE);
- VC中获取主机名和IP地址的方法
- VC中获取主机名和IP地址的方法
- VC中获取主机名和IP地址的方法
- VC中获取主机名和IP地址的方法
- Oracle中获取主机名和IP地址
- java中IP地址、主机名的获取
- VC 获取机器的Ip和主机名
- 获取主机名和IP地址
- 获取主机名和IP地址
- 获取主机名和IP地址
- JS获取MAC地址、IP地址及主机名的方法
- php中获取主机名、协议及IP地址的方法 及mysql 1024错误解决
- JS获取客户端IP地址、MAC和主机名的7个方法汇总
- JS获取客户端IP地址、MAC和主机名的3个方法
- JS获取客户端IP地址、MAC和主机名的7个方法汇总
- JS获取客户端IP地址、MAC和主机名的方法汇总
- 使用非ActiveX,获取客户端IP地址、MAC和主机名的方法
- JS获取客户端IP地址、MAC和主机名的7个方法汇总
- Repeater的ItemCommand使用的问题
- 在程序中获得驱动器盘符的方法,附源程序,可在VC7.1下编译运行
- ASP.NET 文件操作
- 不开机故障的检测方法及顺序
- 消息交换模式 汇总
- VC中获取主机名和IP地址的方法
- java与模式
- Webservice 的设计和模式
- SQL SERVER 2005 支持三种方式的备份/恢复
- STL 的string类
- String类和StringBuffer类的区别
- GAE(Google App Engine Datastore API)翻译(2)
- CScrollBar控件的使用方法:
- C/C++返回内部静态成员的陷阱