|   Сделать стартовой  |    На главную| Чат | Гостевая книга | Форум 
        www.IqSoft.narod.ru      
                 Найти: на

                                                                                                    

Как преобразовать доменное имя в IP адрес


Автор: Randy Birch

Добавьте следующий код в секцию объявлений модуля BAS:

Option Explicit
Public Const IP_SUCCESS As Long = 0
Public Const MAX_WSADescription As Long = 256
Public Const MAX_WSASYSStatus As Long = 128
Public Const WS_VERSION_REQD As Long = &H101
Public Const WS_VERSION_MAJOR As Long = WS_VERSION_REQD \ &H100 And &HFF&
Public Const WS_VERSION_MINOR As Long = WS_VERSION_REQD And &HFF&
Public Const MIN_SOCKETS_REQD As Long = 1
Public Const SOCKET_ERROR As Long = -1

Public Type WSADATA
   wVersion As Integer
   wHighVersion As Integer
   szDescription(0 To MAX_WSADescription) As Byte
   szSystemStatus(0 To MAX_WSASYSStatus) As Byte
   wMaxSockets As Long
   wMaxUDPDG As Long
   dwVendorInfo As Long
End Type

Private Declare Function gethostbyname Lib "wsock32" _
  (ByVal hostname As String) As Long
  
Private Declare Sub CopyMemory Lib "kernel32" _
   Alias "RtlMoveMemory" _
  (xDest As Any, _
   xSource As Any, _
   ByVal nbytes As Long)

Private Declare Function lstrlenA Lib "kernel32" _
  (lpString As Any) As Long

Public Declare Function WSAStartup Lib "wsock32" _
   (ByVal wVersionRequired As Long, _
    lpWSADATA As WSADATA) As Long
    
Public Declare Function WSACleanup Lib "wsock32" () As Long


Public Function SocketsInitialize() As Boolean

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


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


Public Function GetIPFromHostName(ByVal sHostName As String) As String

  'преобразуем доменное имя в IP адрес.

   Dim nbytes As Long
   Dim ptrHosent As Long  
   Dim ptrName As Long    
   Dim ptrAddress As Long 
   Dim ptrIPAddress As Long
   Dim sAddress As String
   
   sAddress = Space$(4)

   ptrHosent = gethostbyname(sHostName & vbNullChar)

   If ptrHosent <> 0 Then

      ptrAddress = ptrHosent + 12
      
     'получаем IP адрес
      CopyMemory ptrAddress, ByVal ptrAddress, 4
      CopyMemory ptrIPAddress, ByVal ptrAddress, 4
      CopyMemory ByVal sAddress, ByVal ptrIPAddress, 4

      GetIPFromHostName = IPToText(sAddress)

   End If
   
End Function


Private Function IPToText(ByVal IPAddress As String) As String

   IPToText = CStr(Asc(IPAddress)) & "." & _
              CStr(Asc(Mid$(IPAddress, 2, 1))) & "." & _
              CStr(Asc(Mid$(IPAddress, 3, 1))) & "." & _
              CStr(Asc(Mid$(IPAddress, 4, 1)))
              
End Function

 

А теперь добавьте на форму кнопку (Command1), текстовое поле и следующий код:

 

Private Sub Command1_Click()

   Dim sHostName As String
   
   If SocketsInitialize() Then
   
     'передаём доменный адрес в функцию
      sHostName = Text1.Text
      Text2.Text = GetIPFromHostName(sHostName)
      
      SocketsCleanup
      
   Else
   
        MsgBox "Windows Sockets for 32 bit Windows " & _
               "is not successfully responding."
   
   End If
   

   
End Sub
  

 

 

 

                                                                   ОБСУДИТЬ СТАТЬЮ НА ФОРУМЕ

  Словарь       Яндекс.Лингво

   

  Сделать стартовой     

Программирование
 -  Основы Visual Basic
 -  Visual Basic
 -  Кирпичики для  VB
 -  Visual Basic 6.0 избранное
 -  API
Разное
 -  БЕЗОПАСНОСТЬ INTRANET
- Политика безопасности для электронной почты.
 - Сравнительная характеристика Internet Explorer и Netscape Navigator
 - Как подключить к Интернету несколько компьютеров через один модем
 -  Мифы компьютерной безопасности
 -  Оптимизация Windows 98.
 - ЧТО ПОМHИТ КОМПЬЮТЕР?
 - О НЕКОТОРЫХ МЕТОДАХ ОБНАРУЖЕНИЯ ЗАКЛАДОЧНЫХ УСТРОЙСТВ
- Хакеры или кракеры "Что такое хорошо и что такое плохо?"
 - Атака из сети
                                                            Нам весьма интересны любые Ваши предложения о сотрудничестве.

                         

 

  Дизайн: Кулишов Андрей
Напишите мне
Hosted by uCoz