zoukankan      html  css  js  c++  java
  • GetHostName与GetHostByName的使用.

    function gethostbyname(name: PAnsiChar): PHostEnt; stdcall; // 通过域名或者主机命返回IP地址. 传进去的参数是一个域名或者主机名.返回值是一个Hostent指针结构.(如果传进去的是一个空字符串,那么返回的是本机的主机名与IP地址)

    function gethostname(name: PAnsiChar; len: Integer): Integer; stdcall;// 得到本机主机名或者域名.有两个参数,一个是用来存放主机名或者域名的变量,一个是缓冲区的大小.

     

    PHostEnt在delphi定义如下
    type
    PHostEnt = ^THostEnt;
    {$EXTERNALSYM hostent}
    hostent = record
    h_name: PChar; //主机名
    h_aliases: ^PChar; //别名
    h_addrtype: Smallint;
    h_length: Smallint;
    case Byte of
    0: (h_addr_list: ^PChar);
    1: (h_addr: ^PChar) //IP地址
    end;
    THostEnt = hostent;

     以下是一个小例子------------------------------------------------------------------------

    procedure TForm1.Button2Click(Sender: TObject);
    var
      WData: TWSAData;   //WSAStartup必须用到的结构类型.
      HEnt: PHostEnt;
      ClName, IPad: string;
    begin
      WSAStartup(2, WData); // 初始化,第一个参数是Socket的版本,第二个它会在这个结构体中返回WinSock库的一些信息,如版本号,监听队列的大小,你能创建的最多的socket数目,等等。
      //Gethostname(PAnsiChar(ClName), 255); 得到本机主机名或者域名.
      HEnt := GetHostByName(PAnsiChar('www.google.com.hk')); // 通过域名或者主机命返回IP地址.  传进去的参数是一个域名或者主机名.返回值是一个Hostent结构.(如果传进去的是一个空字符串,那么返回的是本机的主机名与IP地址)
      with HEnt^ do
      IPad := Format('%d.%d.%d.%d', [Byte(h_addr^[0]), Byte(h_addr^[1]),Byte(h_addr^[2]), Byte(h_addr^[3])]); //格式化IP地址
      Edit1.Text := HEnt^.h_name; // 主机名
      Edit2.Text := IPad; // 得到ip
      WSACleanup; // 释放WSAStartup,一个程序中可以多次调用WSAstartup,但是都必须得即使释放.
    end;
    //-----------------------------------------------------------------------------------------------
     上面代码执行完之后结果为
    Edit1.Text := www-wide.l.google.com;
    Edit2.Text := 74.125.71.199;

     

  • 相关阅读:
    获取控件的xy坐标
    你不知道的JavaScript--Item4 基本类型和基本包装类型(引用类型)
    你不知道的JavaScript--Item3 隐式强制转换
    ajax技术基础详解
    git回退到某个历史版本
    jQuery中 $.ajax()方法详解
    Eclipse Java注释模板设置详解
    MySQL中group_concat函数深入理解
    javascript知识详解之8张思维导图
    javascript 事件编程之事件(流,处理,对象,类型)
  • 原文地址:https://www.cnblogs.com/mdnx/p/2592877.html
Copyright © 2011-2022 走看看