Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.06.2018, 23:40
SKIPtr SKIPtr вне форума
Новичок
 
Регистрация: 15.03.2015
Сообщения: 98
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Сообщение о конфликте ip адресов

драсте
мне нужно написать программу следящюю когда возникает конфликт ip адресов
подскажите через какое сообщение программа может узнать о наступлении конфликта
Ответить с цитированием
  #2  
Старый 05.06.2018, 21:24
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,480
Версия Delphi: 7, XE3, 10.2
Репутация: 49088
По умолчанию

Не думаю, что тут будет какое-нить стандартное сообщение.
Скорее всего придется лезть в св-ва сетевого адаптера и получать информацию оттуда.
А нафига тебе это надо, ведь винда сама тебе сообщит об этом на машине, которая попробует получить уже занятый адрес. Да и глупо это, кроме серверов, все давно уже по умолчанию получают адреса по DHCP, а тут уже DHCP-сервер обеспечит отсутсвие конфликтов (ну если вообще адресов хватит, но случай, когда более 254 компов в одной подсети - это поискать надо).
Ответить с цитированием
  #3  
Старый 06.06.2018, 05:31
SKIPtr SKIPtr вне форума
Новичок
 
Регистрация: 15.03.2015
Сообщения: 98
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

правильно
DHCP сама проследит за тем шоб не было двойников
и в основном все так и бывает
но изредка у провайдера бывает глюк
и DHCP некоторым на время прекращает дарить ip адреса
если ip прописать вручную то все работает
через какое то время вернеться щасте
но не всегда хочеться ждать
вот я и хотел сделать программу которая следит за свободными адресами
она сама себе назначает адрес наиболее свободный
и как тока кто то пытаеться включиться на этот адрес быстро уходит на другой
Ответить с цитированием
  #4  
Старый 06.06.2018, 21:20
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,480
Версия Delphi: 7, XE3, 10.2
Репутация: 49088
По умолчанию

Хм... непонятно как к этому подойти.
В принципе, можно попробовать послать arp-запрос.
Но я бы скорее копал бы в сторону NMP или чего-то подобного. Просто спрашивать у роутера (или DHCP) о свободности адреса. А понять, что не получилось получить адрес - в таком случае винда присваивает себе адрес из определенной подсети, прописанной жестко (поищи в гугле). Ну или по крайней мере, что адрес не из подсети роутера.
Ну вот как-то так.
Ответить с цитированием
  #5  
Старый 06.06.2018, 23:12
SKIPtr SKIPtr вне форума
Новичок
 
Регистрация: 15.03.2015
Сообщения: 98
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

сильно вмешиваться в дело админа я не могу я просто пользователь
и посмотреть список розданых адресов нет возможности
ай пи раздает керио
я переподключаюсь результата адрес 169....
с этим адресом он не куда не лезит
Ответить с цитированием
  #6  
Старый 07.06.2018, 04:16
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,480
Версия Delphi: 7, XE3, 10.2
Репутация: 49088
По умолчанию

Ну вот в ту сторону и копай.
Т.е. как только получил адрес 169.x.x.x, то значит есть проблемы.
Далее, если у тебя стандартная сеть, т.е. что-то типа 192.168.х.х, то просто можно попробовать пингануть весь диапазон адресов для того, что бы выяснить - свободен адрес или нет. Там будет всего 255 адресов.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:44.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter