Спасибо.
Определение параметров локалки в которую включен девайс
- Сообщения: 116
- Зарегистрирован: Ср апр 28, 2010 17:49:14
Здравствуйте!, имеется локальная сеть без DHCP сервера, есть девайс, который должен работать в этой ( и не только этой сети ), с DHCP все понятно, а вот как девайсу выбрать себе IP из диапазона адресов конкретной локальной сети понять не могу. Может кто подскажет?
Спасибо.
Спасибо.
- Реклама
Может, для начала скажете, что за секретный такой девайс?
- Сообщения: 116
- Зарегистрирован: Ср апр 28, 2010 17:49:14
девайс прост: стоит МК stm32f107 + PHY микросхема DP83848, на контроллере поднят стек lwIP, так вот с DHCP все работает все понятно, и если жестко задать адрес, маску и шлюз сети тоже работает, но это если я знаю все эти параметры сети. А вот если подключусь в сеть о которой мне не известно ничего, как в ней определить какой диапазон адресов используется?
Видимо, однозначно определить не получится. Если ПК подключается к такой сети, то нужно знать IP шлюза и маску этой подсети как минимум. Для определения свободного IP можно "пинговать" все по порядку.
А если у вас нет никакой информации даже о адресе шлюза - то ничего не сделать.
А если у вас нет никакой информации даже о адресе шлюза - то ничего не сделать.
only pure true norwegian blackx 
zenek, единственный вариант - сделать интерфейс, где вручную можно указать параметры сети.
Если вы включаетесь в неизвестную сеть, то никак. Ну или разворачивать полноценную систему, со сканерами диапазонов и прочими хакерскими штуками.
Если вы включаетесь в неизвестную сеть, то никак. Ну или разворачивать полноценную систему, со сканерами диапазонов и прочими хакерскими штуками.
- Реклама
- Сообщения: 116
- Зарегистрирован: Ср апр 28, 2010 17:49:14
Похоже придется ручками забивать себе параметры сети при подключении к сети без DHCP сервера... А так хотелось автоматизировать все это дело.
Вот для автоматизации как раз и придумали DHCP 
Можно попробовать ловить все пакеты сети и анализировать их. По накопленным данным делать выводы.
Ставим плюсы: )
Я и говорю, разворачивать полноценную систему со всякими хакерскими штуками. 
ну мне казалось это не таким уж сложным) тем более с уже работающим стеком.
Ставим плюсы: )
да что там хакерского...
Поднять серверный сокет, прибиндить ему 0 айпишник и ввести в состояние листен.
Первый же пришедший пакет ему покажет, откуда пришло - айпишник , но порт должен быть известен заранее.
Поднять серверный сокет, прибиндить ему 0 айпишник и ввести в состояние листен.
Первый же пришедший пакет ему покажет, откуда пришло - айпишник , но порт должен быть известен заранее.
А адрес шлюза то из этого как получить?
only pure true norwegian blackx 
адрес шлюза - это 1 в конце, широковещалка 255, особенно не порезвишься ...
Ну это как правило так. Хочется то общий алгоритм поиска, подходящий для любых сетей.
only pure true norwegian blackx 
Ой, ни первое, ни второе аксиомой не является.urry писал(а):адрес шлюза - это 1 в конце, широковещалка 255, особенно не порезвишься ...
Адрес шлюза в сети без DHCP анализом пакетов получить нельзя вообще.
стоп, стоп, стоп...
Поправьте меня, где я неправ.
Пусть у нас 30 устройств со стеком lwip - без дополнительных капиталовложений стек поддерживает не более 5 сокетов.
Серверное устройство требует 30+1 сокетов, не влезаем - следовательно, у нас 30 клиентских сокетов и 1 серверный - и он не наш, аппаратно его поддержать не сможем физически.
Или как?
Поправьте меня, где я неправ.
Пусть у нас 30 устройств со стеком lwip - без дополнительных капиталовложений стек поддерживает не более 5 сокетов.
Серверное устройство требует 30+1 сокетов, не влезаем - следовательно, у нас 30 клиентских сокетов и 1 серверный - и он не наш, аппаратно его поддержать не сможем физически.
Или как?
И причём тут сокеты?
У нас есть
TCP адрес A.B.C.D и номер порта Z, однозначно определяющий сокет.
Пусть МК устройство с примитивным стеком не умеет более 5 сокетов ( т.е. не может поддерживать более 5 одновременно открытых соединений), но
1) таких устройств в сети может быть миллиарды и они все могут работать одновременно
2) кроме МК в сети могут быть вполне "разумные" устройства, которые могут поддерживать десятки тысяч одновременно открытых сокетов, и могут быть маршрутизаторы (шлюзы), которые вообще ничего не знают про то, что за информация через них проходит. Сеть может быть нарезана "по понятиям", в смысле соответственно устаревшим правилам (первая цифра от 1 до 126 - значит это сеть класса А, 16 миллионов хостов), но чаще нарезается исходя из здравого смысла ( мне провайдер выделил 6 адресов из сети 94.ХХХ.ХХХ.128, с 129 по 134, а вовсе не сеть класса А )
Но и наоборот, 10-е сети никто, как правило локально не нарезает(а что, не жалко) , в результате узнать такие тонкости без DHCP, просто анализируя трафик, попросту невозможно. Не, там конечно, можно нагородить эвристики, но из любого эвристического правила немедленно найдется туча исключений.
У нас есть
TCP адрес A.B.C.D и номер порта Z, однозначно определяющий сокет.
Пусть МК устройство с примитивным стеком не умеет более 5 сокетов ( т.е. не может поддерживать более 5 одновременно открытых соединений), но
1) таких устройств в сети может быть миллиарды и они все могут работать одновременно
2) кроме МК в сети могут быть вполне "разумные" устройства, которые могут поддерживать десятки тысяч одновременно открытых сокетов, и могут быть маршрутизаторы (шлюзы), которые вообще ничего не знают про то, что за информация через них проходит. Сеть может быть нарезана "по понятиям", в смысле соответственно устаревшим правилам (первая цифра от 1 до 126 - значит это сеть класса А, 16 миллионов хостов), но чаще нарезается исходя из здравого смысла ( мне провайдер выделил 6 адресов из сети 94.ХХХ.ХХХ.128, с 129 по 134, а вовсе не сеть класса А )
Но и наоборот, 10-е сети никто, как правило локально не нарезает(а что, не жалко) , в результате узнать такие тонкости без DHCP, просто анализируя трафик, попросту невозможно. Не, там конечно, можно нагородить эвристики, но из любого эвристического правила немедленно найдется туча исключений.
я вот все время думаю, как это можно продать...
Сокеты - наиболее популярная форма общения в сети.
Как узнать при dhcp какой сокет тыркнул пакет ?Ну айпишник, увидим, а дальше ? Если он роздан автоматом ?
Сокет -он мак адрес не показывает, который ручками задан, только опросом что-то можно выяснить.
Автономная система, согласен, давно уже не юзает классическое распределение, впрочем, это каждый школьник знает
http://ru.wikipedia.org/wiki/%D0%91%D0% ... 0%B8%D1%8F
ну и ставить BGP на 107-407 стм никто не будет
Немного другие задачи. Где ниша именно стм ?
Учитывая наличие там всяких переходников уарт- езернет, микросхем enc60
Сокеты - наиболее популярная форма общения в сети.
Как узнать при dhcp какой сокет тыркнул пакет ?Ну айпишник, увидим, а дальше ? Если он роздан автоматом ?
Сокет -он мак адрес не показывает, который ручками задан, только опросом что-то можно выяснить.
Автономная система, согласен, давно уже не юзает классическое распределение, впрочем, это каждый школьник знает
http://ru.wikipedia.org/wiki/%D0%91%D0% ... 0%B8%D1%8F
ну и ставить BGP на 107-407 стм никто не будет
Немного другие задачи. Где ниша именно стм ?
Учитывая наличие там всяких переходников уарт- езернет, микросхем enc60
На прикладном уровне абсолютно неважно, какой там MAC адрес у отправителя. А если отправитель не рядом в одной сети, а за маршрутизатором, да и еще и в другой среде передачи, то и вообще нет смысла говорить об этом. А делать недоделки, которые работают только в пределах одной, строго определенной сети как-то бессмысленно.urry писал(а): Сокет -он мак адрес не показывает, который ручками задан, только опросом что-то можно выяснить.
Ну и при чём тут BGP ? BGP нужен на маршрутизаторах, да ещё и не просто маршрутизаторах, а имеющих более одной связи с интернетом. А это однозначно совсем другие устройства с другой ценой.ну и ставить BGP на 107-407 стм никто не будет![]()
Ниша в датчиках, управляющих автоматах и исполнительных устройствах с единой, универсальной и весьма дешевой средой передачи - EthernetГде ниша именно стм ?
Учитывая наличие там всяких переходников уарт- езернет, микросхем enc60
Но их нишевость не значит, что нужно отступаться от стандартов, которые давно работают и начинать изобретать велосипеды с треугольными колесами.
In theory, theory and practice are the same. In practice, they're not.


