获取计算机的IP地址和计算机名

 利用Winsock函数获取主机名和IP地址非常简单,可以有很多种方法,最简单的只需通过两个函数gethostname和gethostbyname可以解决。

     1、函数gethostname

     该函数原型为:int gethostname( char* name, int namelen ); 

     其中,参数name是一个指向将要存放主机名的缓冲区的指针。namelen用于指定缓冲区的长度。该函数把本地上机名存放入由name参数指定的缓冲区中,返回的主机名是一个以NULL结束的字符中。主机名的形式取决于Winsock实现,它可能是一个简单的主机名,或者是一个域名。然而,返回的名字必定可以在gethostbyname()和WSAAsyncGetHostByName()中使用。如果没有错误发生,gethostname()返回0.否则它返回socket_error。

     2、函数gethostbyname

     该函数的原型为: struct hostent* gethostbyname( const char* addr );

     其中,name为指向主机名的指针,它一般由函数gethostname返回。该函数返回对应于给定主机名的包含主机名和地址信息的hostent结构指针,该结构的格式如下:

      struct hostent {

            char FAR* h_name;  //h_name为正规的主机名字

            char FAR* FAR*  h_aliases;  //h_aliase是一个以空指针结尾的可选主机名队列

            short  h_addrtype; //返回地址的类型

            short  h_length;  //为每个地址的长度(字节数)

            char FAR* FAR* h_addr_list;  //以空指针结尾的主机地址的列表,返回的地址以网络顺序排练

       }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值