LookUp.exe realización de
la yuprxk original, finalmente liberado el 08/05/2014 12:09:42 543 lecturas favoritas
ampliar
d
#include <WinSock2.h>
#include <iostream>
#pragma comment (lib, "ws2_32.lib")
usando el espacio de nombres std;
int handle_error ()
{
WSACleanup ();
volver EXIT_FAILURE;
}
int main (int __argc, char ** __argv)
{
WSADATA wsa;
if (0! = WSAStartup (MAKEWORD (2,2), & wsa))
{
cerr << "WSAStartup () falló!" << endl;
return handle_error ();
}
PHOSTENT pHostEnt = NULL;
IN_ADDR addr;
if (__argc == 2)
{
if (__argv [1] &&
{
addr.s_addr = inet_addr (__ argv [1]); // ip 地址
if (INADDR_NONE == addr.s_addr)
{
cerr << __argv [1] << "inválido addr!" << endl;
return handle_error ();
}
pHostEnt = gethostbyaddr ((const char *) y addr, sizeof (sockaddr), AF_INET);
}
else
{
pHostEnt = gethostbyname (__ argv [1]);
}
}
else
{
cout << "entrada como: \ n \ t lookup.exe www.sina.com \ n \ t lookup.exe 127.0.0.1" << endl;
return handle_error ();
{
cerr << "Error de búsqueda:" << WSAGetLastError () << endl;
return handle_error ();
}
cout << "nombre oficial:" << pHostEnt-> h_name << endl;
if (* pHostEnt-> h_aliases)
{
cout << "aliases:" << endl;
for (char ** list = pHostEnt-> h_aliases; * list! = NULL; list ++)
{
cout << "\ t" << * list << endl;
}
}
switch (pHostEnt-> h_addrtype)
{
case AF_INET:
cout << "AF_INET";
rotura;
caso AF_INET6:
cout << "AF_INET6";
rotura;
defecto:
cout << "¡Tipo desconocido!" ;
rotura;
}
cout << ", Tipo-Longitud:" << pHostEnt-> h_length << endl;
cout << "addr_list:" << endl;
for (char ** list = pHostEnt-> h_addr_list; * list! = NULL; list ++)
{
memcpy (& addr.s_addr, list, pHostEnt-> h_length);
cout << "\ t" << inet_ntoa (addr) << endl;
}
// 清理 资源
WSACleanup ();
volver EXIT_SUCCESS;
}
Resultados de ejecución:
> lookup.exe www.sina.com
nombre oficial: polaris.sina.com.cn
alias:
www.sina.com
us.sina.com.cn
news.sina.com.cn
jupiter.sina.com.cn
AF_INET, Tipo -Longitud: 4
add__list:
236.244.14.0
> lookup.exe 127.0.0.1
nombre oficial: zeek-PC
AF_INET, Tipo-Longitud: 4
addr_list:
236.240.32.0
————————————————
Declaración de derechos de autor: Este artículo es un artículo original del blogger de CSDN "yuprxk", siguiendo el acuerdo de derechos de autor CC 4.0 BY-SA, adjunte el enlace original y esta declaración para su reimpresión .
Enlace original: https://blog.csdn.net/yuprxk/article/details/25294935