IP адреса, маски, сеть.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 18.07.2008 (Пт) 13:09

ф-я gethostbyaddr не работает, возвращает 0...
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 18.07.2008 (Пт) 13:46

Source, ну тебе же сказали. НЕ ПО ЛУ ЧИТЬ.
Все сайты, выдающие такую инфу работают со своими БД.
По подсетям, маскам, шлюзам этого не определить.
Соответственно, варианта два:
1) Спросить у провайдера.
2) Решить проблему вообще по другому.

Тебе это хоть зачем? Зачем тебе понадобилось знать, в той же сети другой человек, али нет?
label:
cli
jmp label

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 18.07.2008 (Пт) 21:36

чтобы составить полную маску (маски) локальной сети по локальным IP клиентов одного провайдера программно. А что надо ещё gethostbyaddr чтоб работала (возвращает 0)?
Код: Выделить всё
Function HostByAddress(ByVal sAddress As String) As String
Dim lAddress As Long
Dim p As Long
Dim HostName As String
Dim Host As T_Host
   lAddress = inet_addr(sAddress)
   p = gethostbyaddr(lAddress, 4, PF_INET)
   If p <> 0 Then
     CopyMemory Host, ByVal p, Len(Host)
     HostName = String(256, 0)
     CopyMemory ByVal HostName, ByVal Host.h_name, 256
     If HostName = "" Then HostByAddress = "Unable to Resolve Address"
     HostByAddress = Left(HostName, InStr(HostName, Chr(0)) - 1)
   Else
     HostByAddress = "No DNS Entry"
   End If
End Function
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 19.07.2008 (Сб) 12:15

Source писал(а):Как он это делает?

Из RIPE.
Lasciate ogni speranza, voi ch'entrate.

HiSER
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 04.07.2007 (Ср) 18:17

Сообщение HiSER » 19.07.2008 (Сб) 15:06

Код: Выделить всё
Public Const AF_INET = 2
Public Const WSANO_DATA = 11004
Public Const WSADESCRIPTION_LEN = 256
Public Const WSASYS_STATUS_LEN = 128

Public Type WSADATA
wVersion As Integer
wHighVersion As Integer
szDescription(WSADESCRIPTION_LEN) As Byte
szSystemStatus(WSASYS_STATUS_LEN) As Byte
iMaxSockets As Integer
iMaxUdpDg As Integer
lpVendorInfo As Long
End Type
Public Type HOSTENT
h_name As Long
h_aliases As Long
h_addrtype As Integer
h_length As Integer
h_addr_list As Long
End Type

Public Declare Function WSAStartup Lib "ws2_32" (ByVal wVersionRequested As Integer, lpWSAData As WSADATA) As Long
Public Declare Function WSACleanup Lib "ws2_32" () As Long
Public Declare Function WSAGetLastError Lib "ws2_32" () As Long
Public Declare Function inet_addr Lib "ws2_32" (ByVal itype As String) As Long
Public Declare Function gethostbyaddr Lib "ws2_32" (addr As Long, ByVal ilen As Long, ByVal itype As Long) As Long
Public Declare Sub GetMem4 Lib "msvbvm60" (dest As Any, ddval As Any)
Public Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (lpString As Any) As Long
Public Declare Sub RtlMoveMemory Lib "kernel32" (Destination As Any, Source As Any, ByVal Length As Long)

Public Sub Main()
Dim wsad As WSADATA
Dim ip As Long
Dim addr_h As Long
Dim tmp As String
WSAStartup &H202, wsad
ip = inet_addr("127.0.0.1")
addr_h = gethostbyaddr(ip, 4, AF_INET)
If Not (addr_h = 0) Then
GetMem4 ByVal addr_h, addr_h 'addr_h  = HOSTENT.h_name
tmp = String$(lstrlen(ByVal addr_h), 0)
RtlMoveMemory ByVal tmp, ByVal addr_h, Len(tmp)
MsgBox tmp, vbInformation
Else
If WSAGetLastError = WSANO_DATA Then
MsgBox "Valid name, no data record of requested type.", vbExclamation
Else
MsgBox "Error #" & WSAGetLastError, vbExclamation
End If
End If
WSACleanup
End Sub

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 19.07.2008 (Сб) 16:29

если данные передаются с одного локального IP на другой локальный IP, может быть так, что данные пройдут ч/з провайдера и RemoteHost будет содержать IP прова?
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 20.07.2008 (Вс) 7:49

Source
Прочти уже какую-нибудь книжку по сетям, скоро люди животики надрывать будут от твоих вопросов.
может быть так, что данные пройдут ч/з провайдера
А как может быть иначе? Разве что так:..

Пакеты короткими перебежками продвигались от сети к сети, пользуясь складками местности. Суровые одмины провайдера, вооружившись чем попало, отстреливали пакеты, пытающиеся прокрасться в обход их маршрутизаторов. Это был настоящий ад.

RemoteHost будет содержать IP прова?
RemoteHost будет содержать IP шлюза.
Лучший способ понять что-то самому — объяснить это другому.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 20.07.2008 (Вс) 18:33

т.е. если у меня IP 169.254.0.1 и мне идёт пакет с 169.254.0.2, каков будет RemoteHost? 169.254.0.2 или 169.254.0.0?
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 20.07.2008 (Вс) 19:47

Блин, ну сколько тупить можно? В RemoteHost будет ВНЕШНИЙ АДРЕС ШЛЮЗА (занеси себе в подпись чтобы не забыть). Он может быть любым. У тебя - этот. Это если мы все еще про разные сети.
Адресов, оканчивающихся нулем, не существует.
Лучший способ понять что-то самому — объяснить это другому.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 20.07.2008 (Вс) 20:59

я про локальную сеть. В локальной все данные идут через прова или напрямую, с одного локального IP на другой? Т.е. в RemoteHost я буду видеть IP прова или IP локального компа?
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 20.07.2008 (Вс) 23:17

Source
Если отключить локальную сеть от прова, данные, по-твоему, вообще перестанут идти, да?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 20.07.2008 (Вс) 23:51

ну может провы настраивают так, что локальнй трафик проходит через их узел. Может, они фильтруют его или ещё по каким причинам.
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 20.07.2008 (Вс) 23:54

Ага. Они всесильны, и могут влиять на удалённые чужие сети таким образом, что данные в оных начинают обязательно ходить через провайдерское оборудывание.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 24.07.2008 (Чт) 21:13

1. Как узнать, поддерживат ли сеть широковещательные пакеты, исользуя только свой комп?
2. Если у меня на компе маска подсети 169.254.0.0/24, а маска всей локальной сети 169.254.0.0/16, получу ли я ответы от всех компов диапазона 169.254.0.0-169.254.254.254, если пошлю пакет на 169.254.255.255?
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 25.07.2008 (Пт) 6:29

1. Отправить письмо админу.
2. С какой стати эти компы должны тебе отвечать даже если пакет ими получен?
Лучший способ понять что-то самому — объяснить это другому.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 25.07.2008 (Пт) 9:51

2. Потому что на них будет мой клиент, а на моём компе сервер.
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Сообщение Proxy » 25.07.2008 (Пт) 9:59

Потому что на них будет мой клиент

На чём пишешь, где хостишь? Виртуальный выделенный сервер под линь? Или речь про локаль вообще?
ЗЫ. Я любопытный кот просто.
Ой, я не внимательный(
а на моём компе сервер
У него белый ИП О_о? Или из локали коннектица только?
Follow the white rabbit.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 25.07.2008 (Пт) 10:21

на локалке
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 25.07.2008 (Пт) 11:13

2. Если маршрутизация настроена — получишь.
Лучший способ понять что-то самому — объяснить это другому.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 26.07.2008 (Сб) 7:49

и всё таки хочу знать, есть ли такие локальные сети с масками вроде 0.255.255.255 или прерывной битовой маской вроде 0110011... и какой смысл их создавать? Я заменил маски дипазонами IP, т.к. они гибче, но, если моя прога попадёт на сеть с маской 0.255.255.255, диапазон IP будет огромным (неверным). Тогда надо ориентироваться на маску, что нехотелось бы...
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 26.07.2008 (Сб) 10:52

и всё таки хочу знать,
Нет, таких сетей нету.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 26.07.2008 (Сб) 11:11

почему нету? Читал в инете, что вполне возможны. Да и alibek подтвердил:
Формально маска может быть любой.
Вот только я не получил от него ответа, маска 0.255.255.255 является непрерывной или чередующейся?
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 26.07.2008 (Сб) 12:00

и ещё, прочитал в википедии незавершённую статью про Multicast. Но не понял, как же всё таки он реализуется? На какой IP надо слать запрос клиенту? Клиент может висеть на любом порту? На какой IP:порт осуществлять посылку серверу (UDP)? Как слать клиенту запрос по протоколу IGMP? Можно пример на русском?
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 26.07.2008 (Сб) 12:14

Читал в инете, что вполне возможны
Значит ты(что довольно обыденно) чтото не то читал.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 26.07.2008 (Сб) 17:17

Alibekписал
Формально маска может быть любой.
Если в локальной сети могут быть любые IP адреса, то как маршрутизатор определяет, куда я посылаю пакет, на IP локальной сети или на IP внешней сети?
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 26.07.2008 (Сб) 18:09

Формально маска может и может быть любой.
Но мне неизвестны роутеры, которые умеют работать с чудиковатыми масками вроде 0,255,255,255, и очень хотелось бы посмотреть на такой экземпляр.
Кроме того, роутер определяет куда посылать пакет не по твоей маске подсети, а по своим маршрутам, получить которые ты в общем случае не можешь.
А маска подсети на твоем компе - это маска подсети на твоем компе, роутер про нее ничего не знает и она ему не нужна.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 26.07.2008 (Сб) 18:32

Source писал(а):Alibekписал
Формально маска может быть любой.

Ты прочитай также и следующее предложение.

Source писал(а):Если в локальной сети могут быть любые IP адреса, то как маршрутизатор определяет, куда я посылаю пакет, на IP локальной сети или на IP внешней сети?

У маршрутизатора свои маски и маршруты, у твоего компьютера свои.
Маршрутизатору абсолютно безразлично, какие настройки указаны на твоем компьютере. Если они будут противоречить структуре сети, то сеть на твоем компьютере просто не будет работать.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 26.07.2008 (Сб) 18:36

Source писал(а):и ещё, прочитал в википедии незавершённую статью про Multicast.

Не следует всерьез рассчитывать на вики, как на источник достоверной информации. Там слишком много неточностей и ошибок.
Лучше почитай нормальную литературу. Конкретно по сетям посоветую Сэма Хелеби "Принципы маршрутизации в Internet".
Lasciate ogni speranza, voi ch'entrate.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 27.07.2008 (Вс) 23:35

1.Antonariy
Локальные сети в принципе могут иметь почти любую адресацию
Ты имел ввиду локальную сеть без выхода в инет?
Я имел ввиду, может ли провайдер построить локальную сеть по маске 194.70.0.0/16 и, если я буду слать пакет на 194.70.0.1, то как роутер определит, шлю я пакет на внешний IP или на IP в локальной сети?

2. Если я шлю пакет на 255.255.255.255, у меня подсеть IP/24, но вся локальная сеть прова IP/16, пакет разойдётся на IP/24 или IP/16?
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.07.2008 (Пн) 8:52

Source писал(а):если я буду слать пакет на 194.70.0.1, то как роутер определит, шлю я пакет на внешний IP или на IP в локальной сети?

Роутеру наплевать, что и куда ты шлешь. Он руководствуется только таблицей маршрутизации.

Source писал(а):2. Если я шлю пакет на 255.255.255.255, у меня подсеть IP/24, но вся локальная сеть прова IP/16, пакет разойдётся на IP/24 или IP/16?

На всех нормально настроенных роутерах броадкасты рубятся. Так что твой пакет пройдет только до ближайшего роутера.
Lasciate ogni speranza, voi ch'entrate.

Пред.След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 52

    TopList