powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как узнать URL-адрес сайта по IP-адресу?
6 сообщений из 6, страница 1 из 1
Как узнать URL-адрес сайта по IP-адресу?
    #33580698
Андрей Il
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вводим 213.180.204.8 - получаем ya.ru (или www.ya.ru).

Как это реализовать?
...
Рейтинг: 0 / 0
Как узнать URL-адрес сайта по IP-адресу?
    #33580715
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To a form add a command button (Command1) and two text boxes (Text1 and Text2), along with the following one-liner:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
'-----------------------------------------------------------------------------------------
' Copyright ©1996-2006 VBnet, Randy Birch. All Rights Reserved Worldwide.
'        Terms of use http://vbnet.mvps.org/terms/pages/terms.htm
'-----------------------------------------------------------------------------------------

Private Const WSADescription_Len As Long =  256 
Private Const WSASYS_Status_Len As Long =  128 
Private Const WS_VERSION_REQD As Long = &H101
Private Const IP_SUCCESS As Long =  0 
Private Const SOCKET_ERROR As Long = - 1 
Private Const AF_INET As Long =  2 

Private Type WSADATA
  wVersion As Integer
  wHighVersion As Integer
  szDescription( 0  To WSADescription_Len) As Byte
  szSystemStatus( 0  To WSASYS_Status_Len) As Byte
  imaxsockets As Integer
  imaxudp As Integer
  lpszvenderinfo As Long
End Type

Private Declare Function WSAStartup Lib "wsock32" _
  (ByVal VersionReq As Long, _
   WSADataReturn As WSADATA) As Long
  
Private Declare Function WSACleanup Lib "wsock32" () As Long

Private Declare Function inet_addr Lib "wsock32" _
  (ByVal s As String) As Long

Private Declare Function gethostbyaddr Lib "wsock32" _
  (haddr As Long, _
   ByVal hnlen As Long, _
   ByVal addrtype As Long) As Long

Private Declare Sub CopyMemory Lib "kernel32" _
   Alias "RtlMoveMemory" _
  (xDest As Any, _
   xSource As Any, _
   ByVal nbytes As Long)
   
Private Declare Function lstrlen Lib "kernel32" _
   Alias "lstrlenA" _
  (lpString As Any) As Long
  
  
  
Private Sub Command1_Click()

   Text2.Text = GetHostNameFromIP(Text1.Text)
   
End Sub

  
Private Function SocketsInitialize() As Boolean

   Dim WSAD As WSADATA
   
   SocketsInitialize = WSAStartup(WS_VERSION_REQD, WSAD) = IP_SUCCESS
    
End Function


Private Sub SocketsCleanup()
   
   If WSACleanup() <>  0  Then
       MsgBox "Windows Sockets error occurred in Cleanup.", vbExclamation
   End If
    
End Sub


Private Function GetHostNameFromIP(ByVal sAddress As String) As String

   Dim ptrHosent As Long
   Dim hAddress As Long
   Dim nbytes As Long
   
   If SocketsInitialize() Then

     'convert string address to long
      hAddress = inet_addr(sAddress)
      
      If hAddress <> SOCKET_ERROR Then
         
        'obtain a pointer to the HOSTENT structure
        'that contains the name and address
        'corresponding to the given network address.
         ptrHosent = gethostbyaddr(hAddress,  4 , AF_INET)
   
         If ptrHosent <>  0  Then
         
           'convert address and
           'get resolved hostname
            CopyMemory ptrHosent, ByVal ptrHosent,  4 
            nbytes = lstrlen(ByVal ptrHosent)
         
            If nbytes >  0  Then
               sAddress = Space$(nbytes)
               CopyMemory ByVal sAddress, ByVal ptrHosent, nbytes
               GetHostNameFromIP = sAddress
            End If
         
         Else
            MsgBox "Call to gethostbyaddr failed."
         End If 'If ptrHosent
      
      SocketsCleanup
      
      Else
         MsgBox "String passed is an invalid IP."
      End If 'If hAddress
   
   Else
      MsgBox "Sockets failed to initialize."
   End If  'If SocketsInitialize
      
End Function
...
Рейтинг: 0 / 0
Как узнать URL-адрес сайта по IP-адресу?
    #33580745
Андрей Il
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я знаю, что можно так: ping -a 213.180.204.8 .
Но это из консоли.

Можно результат получить на VB? Будет ли это проще и короче, чем приведенный код?
...
Рейтинг: 0 / 0
Как узнать URL-адрес сайта по IP-адресу?
    #33580782
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на VB и написано, проверь сам ,прежде чем спрашивать
...
Рейтинг: 0 / 0
Как узнать URL-адрес сайта по IP-адресу?
    #33580822
Андрей Il
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил, работает. Вижу, что код на VB. Спасибо!!!

Я думал, что можно как-нибудь запустить ping -a 213.180.204.8 (через Shell и т.д.), чтобы получить результат ya.ru, т.к. в консоли это работает.
...
Рейтинг: 0 / 0
Как узнать URL-адрес сайта по IP-адресу?
    #33580846
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как ты думаешь, чем занимается команда PING?
она те же самые действия и выполняет.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как узнать URL-адрес сайта по IP-адресу?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]