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;

     

  • 相关阅读:
    hdu 2222 Keywords Search
    Meet and Greet
    hdu 4673
    hdu 4768
    hdu 4747 Mex
    uva 1513 Movie collection
    uva 12299 RMQ with Shifts
    uva 11732 strcmp() Anyone?
    uva 1401
    hdu 1251 统计难题
  • 原文地址:https://www.cnblogs.com/mdnx/p/2592877.html
Copyright © 2011-2022 走看看