|
相信QQ2004大家玩过吧!其中对好友的IP和哪个地方的显示是不是很爽的啊。哪就跟我来让我看来看究竟。以下为实现原理。
首先载入Winsock动态库,代码如下:
int CIPAddressDlg::StartUp()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionReuqested = MAKEWORD(2, 0);
err = WSAStartup(wVersionReuqested, &wsaData);
if (err != 0)
{
return err;
}
if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 0)
{
WSACleanup();
return WSAVERNOTSUPPORTED;
}
return 0;
}
以下的GetLocalHostName()函数为现实获取计算机名称,
int CIPAddressDlg::GetLocalHostName(CString &sHostName)
{
char szHostName[256];
int nRectCode;
nRectCode = gethostname(szHostName, sizeofa(szHostName));
if (nRectCode != 0)
{
sHostName = _T("Not available");
return WSAGetLastError();
}
sHostName = szHostName;
return 0;
}
然后调用GetIPAddress来获取IP地址
int CIPAddressDlg::GetIPAddress(const CString &sHostName, CString &sIPAddress)
{
struct hostent FAR *lpHostEnt = gethostbyname(sHostName);
if (lpHostEnt == NELL)
{
sIPAddress = _T("");
return WSAGetLastError();
}
LPSTR lpAddr = lpHostEnt->h_adr_list[0];
if (lpAddr)
{
struct in_addr inAddr;
memmove(&inAddr, lpAddr, 4);
sIPAddress = inet_ntoa(inAddr);
if (sIPAddress.IsEmpty())
sIPAddress = _T("Not available");
}
return 0;
}
哈哈,一切就绪了,是不是很简单啊!
本程序是VC++6.0下运行通过。
| 网游盗号木马实现手记 | 01-09 |
| 黑色技术蠕虫下载者[完整源码] | 11-01 |
| 利用BCB自己打造QQ炸弹 | 10-23 |
| 从内存中加载并启动一个exe(delp | 09-27 |
| 开启和关闭Windows xp 防火墙(de | 09-27 |
| 让你的程序通过XP防火墙(delphi编 | 09-27 |
| 如何让你的程序安全通过windows防 | 08-20 |
| 如何透过程序来控制 Windows (XP | 08-20 |
| 动易2005-2006算号器的源代码 | 08-11 |
| API对注册表进行操作(Delphi编程 | 07-30 |
| 一段隐藏注册表项的代码 | 07-26 |
| 了解VB编写病毒的大体方法 | 07-02 |