небольшая проблема с gethostbyaddr

Тема в разделе "WASM.BEGINNERS", создана пользователем integer, 12 май 2008.

  1. integer

    integer New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2007
    Сообщения:
    62
    получаю имя хоста по ip адресу, например у 92.112.146.58 имя хоста 58-146-112-92.pool.ukrtel.net
    когда пытаюсь узнать имя хоста собственного ip (который отличается только последней цифрой от предыдущего), то получаю имя своего компьютера "athlon". как можно узнать узнать имя хоста такое-же как в первом случае ?

    Код (Text):
    1. .386
    2. .model flat, stdcall
    3. option casemap :none
    4.  
    5. include \masm32\include\windows.inc
    6. include \masm32\include\user32.inc
    7. include \masm32\include\ws2_32.inc
    8. include \masm32\include\kernel32.inc
    9. includelib \masm32\lib\user32.lib
    10. includelib \masm32\lib\ws2_32.lib
    11. includelib \masm32\lib\kernel32.lib
    12.  
    13. .data
    14. ipaddr db "92.112.146.58",0
    15.  
    16. .data?
    17.     WSAData  WSADATA <>
    18.     qwe      in_addr <>
    19.  
    20. .code
    21. start:
    22.     invoke  WSAStartup, 202h, addr WSAData
    23.     test    eax, eax
    24.     jnz     die
    25.  
    26.     invoke  inet_addr, addr ipaddr
    27.     cmp     eax,-1
    28.     je      die
    29.  
    30.     mov     qwe.S_un.S_addr, eax
    31.     invoke  gethostbyaddr, addr qwe, 4, AF_INET
    32.     test    eax, eax
    33.     je      die
    34.  
    35.     invoke  MessageBox, NULL, [eax], NULL, MB_OK
    36.  
    37. die:
    38.     invoke  ExitProcess, NULL
    39. end start
     
  2. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Скорей всего через gethostbyaddr никак не получиться. Ибо когда ip-localhost'a - он к dns серваку не обращается.
    Получи адрес dns'a, и сделай ручной запрос к нему.