⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 获得本地ip地址winsockets dll 信息.txt

📁 可以对黑客编程有一定的了解
💻 TXT
字号:
#pragma hdrstop
#include <condefs.h>
#include <stdio.h>
#include <windows.h>

LPSTR GetHostIpAddress();
//---------------------------------------------------------------------------
//---------获得本地IP地址、WinSockets Dll 信息
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
 char *IP;
 IP=GetHostIpAddress();
 printf("ip=%s\n",IP);
 getchar();
 return 0;
}
//===========================================
LPSTR GetHostIpAddress()
{
 struct hostent *thisHost;

 struct in_addr in;

 char MyName[80];
 char *Ip,*ptr,hostname[80];

 WORD wVersionRequested;
 WSADATA wsaData;

 int err;
 wVersionRequested = MAKEWORD(2,0);
    //#define MAKEWORD(a, b)   ((WORD)(((BYTE)(a)) | ((WORD)((BYTE)(b))) << 8))

 err = WSAStartup( wVersionRequested, &wsaData );
 if ( err != 0 )
   {
    /* 出错 */
    return NULL;
   }


if ( LOBYTE( wsaData.wVersion ) != 2 ||
        HIBYTE( wsaData.wVersion ) != 0 )
  {
    /* Tell the user that we couldn't find a usable */
    /* WinSock DLL.                                  */
    WSACleanup( );
    return NULL;
  }


 printf("Windows Sockets info :\n\t%s\n\t%s\n\t%d\n",wsaData.szDescription,wsaData.szSystemStatus,wsaData.iMaxUdpDg);

 if(gethostname(MyName,80)==SOCKET_ERROR) //得到标准主机名
   {
   WSACleanup( );
   return NULL;
   }
 printf("\n标准主机名: %s\n\n",MyName);

 if(!(thisHost=gethostbyname(MyName)))   //根据主机名得到主机信息
   {
   WSACleanup( );
   return NULL;
   }
 puts("根据主机名得到的主机信息\n");
 printf("\th_name         :%s\n", thisHost->h_name);
 printf("\th_aliases      :%s\n", thisHost->h_aliases);
 printf("\th_addrtype     :%d\n", thisHost->h_addrtype);
 printf("\th_length       :%d\n", thisHost->h_length);
 printf("\th_addr_list[0] :%x\n\n", *((unsigned long *)thisHost->h_addr_list[0]));

  puts("请稍等...");
 if(!(thisHost=gethostbyaddr((unsigned char *)thisHost->h_addr_list[0],4,AF_INET)))   //根据IP地址得到主机信息
   {
   WSACleanup( );
   return NULL;
   }
   puts("\n根据IP地址得到的主机信息\n");
   printf("\th_name         :%s\n", thisHost->h_name);
   printf("\th_aliases      :%s\n", thisHost->h_aliases);
   printf("\th_addrtype     :%d\n", thisHost->h_addrtype);
   printf("\th_length       :%d\n", thisHost->h_length);
   printf("\th_addr_list[0] :%x\n\n", thisHost->h_addr_list[0]);

 memset((void *)&in,0,sizeof(in));
 in.s_addr=*((unsigned long *)thisHost->h_addr_list[0]);
 if(!(ptr=inet_ntoa(in)))
   {
   WSACleanup( );
   return NULL;
   }
 WSACleanup( );
 Ip=new char[strlen(ptr)+1];
 strcpy(Ip,ptr);
 return Ip;
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -