程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 用VC實現QQ2004顯示IP地址的方法

用VC實現QQ2004顯示IP地址的方法

編輯:vc教程

相信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下運行通過。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved