Страница: 1 |
Страница: 1 |
Вопрос: Определение IP адресов(!)
Добавлено: 06.11.05 00:14
Автор вопроса: Kodo | ICQ: 293048085
Здравствуйте =)
Подскажите, как можно определить ВСЕ ip компа? Не силен во всех прелестях TCP\IP, но знаю одно - одна машина может иметь много ip адресов :) Например, у меня 2 сети и подключен dial-up - как мне узнать все 3 ip адреса? Все, что нашел - из серии Winsock.LocalIP - определяет всего 1 IP, причем неясно по какому принципу :S Подскажите плиз, а то совсем запутался :)
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 06.11.05 02:32
'  WORD dwAddr;
'  WORD dwIndex;
'  WORD dwMask;
'  WORD dwBCastAddr;
'  WORD dwReasmSize;
' unsigned short unused1;
' unsigned short unused2;
'};
Private Type MIB_IPADDRROW
dwAddr As Long
dwIndex As Long
dwMask As Long
dwBCastAddr As Long
dwReasmSize As Long
unused As Long
End Type
'typedef struct _MIB_IPADDRTABLE{
'  WORD dwNumEntries;
' MIB_IPADDRROW table[ANY_SIZE];
'};
Private Type MIB_IPADDRTABLE
dwNumEntries As Long
table As MIB_IPADDRROW
End Type
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
Private Declare Function GetIpAddrTable Lib "IPHLPAPI.dll" (ByRef pIpAddrTable As Any, ByRef pdwSize As Long, ByVal border As Long) As Long
Private Sub Command1_Click()
Text1 = GetIPList()
End Sub
Private Function GetIPList() As String
Dim miat As MIB_IPADDRROW
Dim lSize As Long, dwNumEntries As Long
Dim buff() As Byte
GetIpAddrTable miat, lSize, 0
ReDim buff(lSize)
GetIpAddrTable buff(0), lSize, 0
CopyMemory dwNumEntries, buff(0), 4
For i = 0 To dwNumEntries - 1
CopyMemory miat, buff(4 + i * 6 * 4), LenB(miat)
GetIPList = GetIPList & Long2IP(miat.dwAddr) & "/" & Long2IP(miat.dwMask) & vbCrLf
Next
End Function
Private Function Long2IP(ip As Long)
Dim a As String
a = String(8 - Len(Hex(ip)), "0" & Hex(ip)
Long2IP = CStr(CLng("&H" & Right(a, 2))) & "." & _
CStr(CLng("&H" & Mid(a, 5, 2))) & "." & _
CStr(CLng("&H" & Mid(a, 3, 2))) & "." & _
CStr(CLng("&H" & Left(a, 2)))
End Function
Номер ответа: 2
Автор ответа:
Kodo
Разработчик Offline Client
ICQ: 293048085
Вопросов: 37
Ответов: 457
Профиль | | #2
Добавлено: 06.11.05 11:42
Sharp
Респект!
Номер ответа: 3
Автор ответа:
el-paso
Вопросов: 3
Ответов: 164
Профиль | | #3
Добавлено: 06.11.05 14:11
Красота! В мемориз.
Номер ответа: 4
Автор ответа:
00712
ICQ: 207190437
Вопросов: 0
Ответов: 2
Профиль | | #4
Добавлено: 25.11.06 04:18
в смысле ты хочеш не с одного компа узнать айпишники остальных?
Номер ответа: 5
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #5
Добавлено: 25.11.06 16:04
Остальных где? Вообще в мире? В локальной сети? В штабе сухопутных войск США в России?
Номер ответа: 6
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #6
Добавлено: 25.11.06 21:32
00712 не въехал в тему...