Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Узнать имя хоста по его IP 
:(
    Опции темы
Atomic Angel
Дата 19.9.2005, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 19.11.2003

Репутация: нет
Всего: нет



В общем, надо узнать имя компа. По Айпишнику. Очень надеюсь на помощь.
PM MAIL WWW ICQ   Вверх
Akina
Дата 19.9.2005, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Какое имя? DNS, NetBIOS, etc.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
boevik
Дата 20.9.2005, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



ищи инфу по функции gethostbyaddr


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Atomic Angel
Дата 20.9.2005, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 19.11.2003

Репутация: нет
Всего: нет



Цитата
Какое имя? DNS, NetBIOS, etc.

DNS

2boevik

Где я могу взять такую полезную функцию?
PM MAIL WWW ICQ   Вверх
Akina
Дата 20.9.2005, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Atomic Angel
The Windows Sockets gethostbyaddr function retrieves the host information corresponding to a network address.
См. MSDN - Platform SDK: Windows Sockets

или

.NET Framework Class Library - Dns.GetHostByAddress Method


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Atomic Angel
Дата 20.9.2005, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 19.11.2003

Репутация: нет
Всего: нет



Цитата
The Windows Sockets gethostbyaddr function retrieves the host information corresponding to a network address.
См. MSDN - Platform SDK: Windows Sockets

или

.NET Framework Class Library - Dns.GetHostByAddress Method


Ну нету у меня MSDN, нету...
Люди, у меня весь ВБ занимает 11 метров.
С помощью какого-нить МсВинСока никак нельзя?
PM MAIL WWW ICQ   Вверх
Exception
Дата 20.9.2005, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Цитата(Atomic @ 20.9.2005, 10:36)

Ну нету у меня MSDN, нету...

http://msdn.microsoft.com

Цитата(Atomic @ 20.9.2005, 10:36)
С помощью какого-нить МсВинСока никак нельзя?

апи всегда быстрее и проще smile

Добавлено @ 13:00
Цитата(Run @ 20.9.2005, 13:59)
и проще

то есть надёжнее я хотел сказать smile
Добавлено @ 13:02
[offtop] ЗЫ дожил... сам себя цитирую smile .. [/offtop]
PM   Вверх
efedron
Дата 21.9.2005, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 16.3.2005

Репутация: 4
Всего: 4



Atomic Angel
вот упрощенный пример для определения имени хоста по ip на API WSOCK32.DLL
Код

'модуль
Option Explicit
Private Const AF_INET As Integer = 2                     ' UDP, TCP, и т.д.
Private Const MAX_WSADescription = 256
Private Const MAX_WSASYSStatus = 128
Private Const WS_VERSION_REQD = &H101
Private Const WS_VERSION_MAJOR = WS_VERSION_REQD \ &H100 And &HFF&
Private Const WS_VERSION_MINOR = WS_VERSION_REQD And &HFF&
Private Const MIN_SOCKETS_REQD = 1

Private Type HOSTENT
    hName As Long
    hAliases As Long
    hAddrType As Integer
    hLength As Integer
    hAddrList As Long
End Type
Private 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 inet_addr Lib "WSOCK32.DLL" (ByVal ipaddress$) As Long
Private Declare Function gethostbyaddr Lib "WSOCK32.DLL" (addr As Long, addrLen As Long, addrType As Long) As Long
Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Private Declare Sub RtlMoveMemory Lib "KERNEL32" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Private Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired As Long, lpWSAData As WSADATA) As Long

Public Function ResolveHostname(ByVal sIp As String) As String

Dim hostip_addr As Long
Dim hostent_addr As Long
Dim newAddr As Long
Dim host As HOSTENT
Dim strTemp As String
Dim strHost As String * 255
If SocketsInitialize Then
        newAddr = inet_addr(sIp)
        hostent_addr = gethostbyaddr(newAddr, Len(newAddr), AF_INET)

        If hostent_addr = 0 Then
            WSACleanup
            Exit Function
        End If

        RtlMoveMemory host, hostent_addr, Len(host)
        RtlMoveMemory ByVal strHost, host.hName, 255
        strTemp = strHost
        If InStr(strTemp, Chr(0)) <> 0 Then strTemp = Left(strTemp, InStr(strTemp, Chr(0)) - 1)
        strTemp = Trim(strTemp)
        ResolveHostname = strTemp
        WSACleanup
End If
End Function

Private Function SocketsInitialize() As Boolean

    Dim WSAD As WSADATA
    Dim X As Integer
    Dim szLoByte As String
    Dim szHiByte As String
    Dim szBuf As String
    
    X = WSAStartup(WS_VERSION_REQD, WSAD)
    
   'ответ должен быть равен 0
    If X <> 0 Then

        MsgBox "Windows Sockets for 32 bit Windows " & _
               "environments is not successfully responding."
        Exit Function

    End If
    
   'проверка поддрерживаемой версии
    If lobyte(WSAD.wversion) < WS_VERSION_MAJOR Or _
       (lobyte(WSAD.wversion) = WS_VERSION_MAJOR And _
        hibyte(WSAD.wversion) < WS_VERSION_MINOR) Then
        
        szHiByte = Trim$(Str$(hibyte(WSAD.wversion)))
        szLoByte = Trim$(Str$(lobyte(WSAD.wversion)))
        szBuf = "Windows Sockets Version " & szLoByte & "." & szHiByte
        szBuf = szBuf & " is not supported by Windows " & _
                          "Sockets for 32 bit Windows environments."
        MsgBox szBuf, vbExclamation
        Exit Function
        
    End If
    
   'check that there are available sockets
    If WSAD.wMaxSockets < MIN_SOCKETS_REQD Then

        szBuf = "This application requires a minimum of " & _
                 Trim$(Str$(MIN_SOCKETS_REQD)) & " supported sockets."
        MsgBox szBuf, vbExclamation
        Exit Function

    End If
    
    SocketsInitialize = True
        
End Function

Private Function hibyte(ByVal wParam As Long) As Integer

    hibyte = wParam \ &H100 And &HFF&

End Function


Private Function lobyte(ByVal wParam As Long) As Integer

    lobyte = wParam And &HFF&

End Function


пример использования:
Код

MsgBox ResolveHostname("192.168.0.1")

полный код можно найти на planetsoucecode.com

Это сообщение отредактировал(а) efedron - 21.9.2005, 14:07
--------------------
Прежде чем совершить акт разрезания определенной материи целесообразно удостовериться в правильности всех произведенных измерений.
PM MAIL   Вверх
Atomic Angel
Дата 27.9.2005, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 19.11.2003

Репутация: нет
Всего: нет



efedron, респект!!!
Это именно то что мне было нужно!!!
Спасибо большое.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0684 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.