struct HOSTENT FAR * gethostbyaddr(
const char FAR *addr,
int len,
int type
);主要是addr参数是什么东西?请写出调用的代码。谢谢!
const char FAR *addr,
int len,
int type
);主要是addr参数是什么东西?请写出调用的代码。谢谢!
解决方案 »
- vs2005中关于dbf格式文件的问题
- listcontrol控件如何显示文本文件内容?
- 安装 vs2008 中文版时出现 未在系统中检测到兼容的
- 在矩形区域显示对话框
- 如何将汉字编码成16进制字串?
- 求助:CListCtrl闪烁问题?
- 一个listview的问题
- 怎样搜索数据库里的时间最靠前的几条记录?
- Listview 我不想要最上面的coloum的那一小块Head窗口,谁能告诉我应该怎么做!??
- 把doc等文件压缩成zip,和把zip文件解压的控件或dll(用VC或VB开发的)
- 骂了老半天,现在改好了该表扬一下了,祝愿CSDN越办越好
- 请教高手!!!一个关于CComboBox中的事件的捕捉的问题。(送100分)
#include "..."
#include "iphlpapi.h"#pragma comment ( lib, "ws2_32.lib" )
#pragma comment ( lib, "Iphlpapi.lib" )void main( int argc, char ** argv )
{
int numberOfHost = 1;
struct hostent *remoteHostent; //处理命令行参数
if ( argc == 3 )
numberOfHost = atoi( argv[2] );
if ( ( argc >3 ) || ( argc < 2 ) )
{
printf( "RmtHost v0.2 - Get remote HostName /MacAddress\n" );
printf( "by ShotgunLabs ( [email protected] )\n\n" );
printf( "Usage :\n\tRmtHost.exe [RemoteIP] \n\n" );
printf( "Example:\n\tRmtHost.exe 192.168.0.3\n" );
printf( "\tRmtHost.exe 192.168.0.3 255\n\n" );
exit( 0 );
} //初始化SOCKET
WSADATA wsaData;
int iRet = WSAStartup(MAKEWORD(2,1), &wsaData);
if ( iRet != 0 )
{
printf( "WSAStartup Error:%d\n", GetLastError() );
exit( 0 );
}
int nRemoteAddr = inet_addr( argv[1] );
remoteHostent= (struct hostent*)malloc( sizeof(struct hostent ));
struct in_addr sa;
for ( int i = 0; i < numberOfHost; i ++ )
{
//获取远程机器名
sa.s_addr = nRemoteAddr;
printf( "\nIpAddress : %s\n", inet_ntoa( sa ) );
remoteHostent = gethostbyaddr( (char*)&nRemoteAddr,4, AF_INET );
if ( remoteHostent )
printf( "HostName : %s\n",remoteHostent->h_name );
else
printf( "gethostbyaddr Error:%d\n",GetLastError() );
//发送ARP查询包获得远程MAC地址 unsigned char macAddress[6];
ULONG macAddLen = 6;
iRet=SendARP(nRemoteAddr, (unsigned long)NULL,(PULONG)&macAddress, &macAddLen);
if ( iRet == NO_ERROR )
{
printf( "MacAddress: " );
for( int i =0; i<6; i++ )
{
printf( "%.2x", macAddress[i] );
if ( i<5 ) printf( "-" );
}
printf( "\n" );
}
else
printf( "SendARP Error:%d\n", GetLastError());
nRemoteAddr = htonl( ntohl( nRemoteAddr ) + 1 );
}
}
简述:
返回对应于给定地址的主机信息。 #include <winsock.h>
struct hostent FAR *PASCAL FAR gethostbyaddr(const char
FAR * addr, int len, int type); addr:指向网络字节顺序地址的指针。 len: 地址的长度,在PF_INET类型地址中为4。 type:地址类型,应为PF_INET。注释:
gethostbyaddr()返回对应于给定地址的包含主机名字和地址信息的hostent结构指针。结构的声明如下: struct hostent {
char FAR * h_name;
char FAR * FAR * h_aliases;
short h_addrtype;
short h_length;
char FAR * FAR * h_addr_list;
};结构的成员有:
成员 用途
h_name 正规的主机名字(PC)。
h_aliases 一个以空指针结尾的可选主机名队列。
h_addrtype 返回地址的类型,对于Windows Sockets,这个域总是PF_INET。
h_legnth 每个地址的长度(字节数),对应于PF_INET这个域应该为4。
h_addr_list 应该以空指针结尾的主机地址的列表,返回的地址是以网络顺序排列的为了保证其他旧的软件的兼容性,h_addr_list[0]被定义为宏h_addr。 返回的指针指向一个由Windows Sockets实现分配的结构。应用程序不应该试图修改这个结构或者释放它的任何部分。此外,每一线程仅有一份这个结构的拷贝,所以应用程序应该在发出其他Windows Scokets API调用前,把自己所需的信息拷贝下来。返回值:
如果没有错误发生,gethostbyaddr()返回如上所述的一个指向hostent结构的指针,否则,返回一个空指针。应用程序可以通过WSAGetLastError()来得到一个特定的错误代码。错误代码:
WSANOTINTIALISED 在应用这个API前,必须成功地调用WSAStartup()。
WSAENTDOWN Windows Sockets实现检测到了网络子系统的错误。
WSAHOST_NOT_FOUND 没有找到授权应答主机。
WSATRY_AGAIN 没有找到非授权主机,或者SERVERFAIL。
WSANO_RECOVERY 无法恢复的错误,FORMERR,REFUSED,NOTIMP。
WSANO_DATA 有效的名字,但没有关于请求类型的数据记录。
WSAEINPROGRESS 一个阻塞的Windows Sockets操作正在进行。
WSAEINTR 阻塞调用被WSACancelBlockingCall()取消了.
简述:
返回对应于给定地址的主机信息。 #include <winsock.h>
struct hostent FAR *PASCAL FAR gethostbyaddr(const char
FAR * addr, int len, int type); addr:指向网络字节顺序地址的指针。 len: 地址的长度,在PF_INET类型地址中为4。 type:地址类型,应为PF_INET。注释:
gethostbyaddr()返回对应于给定地址的包含主机名字和地址信息的hostent结构指针。结构的声明如下: struct hostent {
char FAR * h_name;
char FAR * FAR * h_aliases;
short h_addrtype;
short h_length;
char FAR * FAR * h_addr_list;
};结构的成员有:
成员 用途
h_name 正规的主机名字(PC)。
h_aliases 一个以空指针结尾的可选主机名队列。
h_addrtype 返回地址的类型,对于Windows Sockets,这个域总是PF_INET。
h_legnth 每个地址的长度(字节数),对应于PF_INET这个域应该为4。
h_addr_list 应该以空指针结尾的主机地址的列表,返回的地址是以网络顺序排列的为了保证其他旧的软件的兼容性,h_addr_list[0]被定义为宏h_addr。 返回的指针指向一个由Windows Sockets实现分配的结构。应用程序不应该试图修改这个结构或者释放它的任何部分。此外,每一线程仅有一份这个结构的拷贝,所以应用程序应该在发出其他Windows Scokets API调用前,把自己所需的信息拷贝下来。返回值:
如果没有错误发生,gethostbyaddr()返回如上所述的一个指向hostent结构的指针,否则,返回一个空指针。应用程序可以通过WSAGetLastError()来得到一个特定的错误代码。错误代码:
WSANOTINTIALISED 在应用这个API前,必须成功地调用WSAStartup()。
WSAENTDOWN Windows Sockets实现检测到了网络子系统的错误。
WSAHOST_NOT_FOUND 没有找到授权应答主机。
WSATRY_AGAIN 没有找到非授权主机,或者SERVERFAIL。
WSANO_RECOVERY 无法恢复的错误,FORMERR,REFUSED,NOTIMP。
WSANO_DATA 有效的名字,但没有关于请求类型的数据记录。
WSAEINPROGRESS 一个阻塞的Windows Sockets操作正在进行。
WSAEINTR 阻塞调用被WSACancelBlockingCall()取消了.