1. -= Gold =-04.05.2025 в 15:19от
Загрузка...

Вычисляем IP по домену

Тема в разделе "С/С++/Pascal/Delphi", создана пользователем Bitching Help, 12.03.2014.

  1. Bitching Help

    Bitching Help

    Статус:
    Оффлайн
    Регистрация:
    12.03.14
    Сообщения:
    39
    Репутация:
    3 +/-
    Сегодня я опишу функцию, которая позволяет вычислить IP адрес компьютера в интернете по его доменному имени.

    Объявляем Winsock, для использования в функции:


    Код:
    function HostToIP(Name: string; var Ip: string): Boolean; 
    
    var 
    
    wsdata : TWSAData; 
    
    hostName : array [0..255] of char; 
    
    hostEnt : PHostEnt; 
    
    addr : PChar; 
    
    begin 
    
    WSAStartup ($0101, wsdata); 
    
    try 
    
    gethostname (hostName, sizeof (hostName)); 
    
    StrPCopy(hostName, Name); 
    
    hostEnt := gethostbyname (hostName); 
    
    if Assigned (hostEnt) then 
    
    if Assigned (hostEnt^.h_addr_list) then begin 
    
    addr := hostEnt^.h_addr_list^; 
    
    if Assigned (addr) then begin 
    
    IP := Format ('%d.%d.%d.%d', [byte (addr [0]), 
    
    byte (addr [1]), byte (addr [2]), byte (addr [3])]); 
    
    Result := True; 
    
    end 
    
    else 
    
    Result := False; 
    
    end 
    
    else 
    
    Result := False 
    
    else begin 
    
    Result := False; 
    
    end; 
    
    finally 
    
    WSACleanup; 
    
    end 
    
    end; 
    

    Так же можно на форме разместить EditBox, Кнопку и Label и добавить к кнопке следующий обработчик события
    OnClick:

    Код:
    procedure TForm1.Button1Click(Sender: TObject); 
    
    var 
    
    IP: string; 
    
    begin 
    
    if HostToIp(Edit1.Text, IP) then Label1.Caption := IP; 
    
    end; 
    
    Готово.
     
  2. BiGBOoSs

    Всем удачи в жизни...
    BiGBOoSs

    Статус:
    Оффлайн
    Регистрация:
    03.03.14
    Сообщения:
    135
    Репутация:
    62 +/-
    уу Класно )
     
  3. Timer

    Timer

    Статус:
    Оффлайн
    Регистрация:
    06.03.14
    Сообщения:
    40
    Репутация:
    44 +/-
    Паблик функция... Хотя-бы ссылку указал.