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

Как это реализовать?
...
Рейтинг: 0 / 0
03.03.2006, 16:12:38
    #33580715
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать URL-адрес сайта по IP-адресу?
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
03.03.2006, 16:19:37
    #33580745
Андрей Il
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать URL-адрес сайта по IP-адресу?
Я знаю, что можно так: ping -a 213.180.204.8 .
Но это из консоли.

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

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


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