Как написать программу для определения серого адреса? Добрый день!
Имею подключение к Интернету через Ростелеком через роутер F@st 1744 v4 со стандартной прошивкой от провайдера, сервер на базе Ubuntu Server. Проблема в том, что время от времени (раз в неделю примерно) роутер получает серый ip-адрес. Сервисы на сервере, соответственно, становятся недоступны извне. После n-нного числа принудительных дисконнектов снова присваивается белый ip-адрес, все сервисы на сервере становятся вновь доступны.
По причине того, что провайдер не дает подключить услугу "Статический ip-адрес" хочу написать программу, которая при получении серого ip-адреса отправляет роутер в ребут до тех пор, пока он не получит белый. Вопрос в том, каким образом выявить признак "серости" адреса, если такой адрес может начинаться с 77.ххх.ххх.ххх (так же, как и белый).

21 Авг 2019 в 06:37
188 +1
0
Ответы
1

Для определения "серого" адреса можно использовать услуги сторонних сервисов для проверки IP-адреса на черные списки или провести анализ маршрутизации IP-трафика. Можно также проверить метрики, такие как Time to Live (TTL) и значение CIDR (Classless Inter-Domain Routing), чтобы определить, является ли адрес "серым".

Вот пример кода на Python, который проверяет текущий IP-адрес и перезагружает роутер, если он является "серым":

import requests
import subprocess
def is_gray_ip(address):
blacklists = ['https://domains.tgnet.ru/ip.txt',
'http://www.stopforumspam.com/api?ip=%s' % address]
for blacklist in blacklists:
response = requests.get(blacklist)
if response.text.strip() == address:
return True
return False
def get_current_ip():
ip = requests.get('https://api.ipify.org').text
return ip
def reboot_router():
subprocess.run(['ssh', 'admin@router_ip', 'reboot']) # replace 'router_ip' with actual IP of your router
if __name__ == "__main__":
current_ip = get_current_ip()
if is_gray_ip(current_ip):
print("Gray IP address detected. Rebooting router...")
reboot_router()
else:
print("White IP address detected. Everything is OK.")

Этот код проверит текущий IP-адрес на черные списки и, если обнаружит, что адрес "серый", отправит команду на перезагрузку роутера. Не забудьте заменить 'router_ip' на реальный IP вашего роутера.

Обратите внимание, что для перезагрузки роутера через SSH вам потребуется настроить доступ к роутеру по SSH. Также помните, что перезагрузка роутера может временно прервать ваш доступ к Интернету. Не забудьте проверить работоспособность вашей программы на песочнице перед использованием в реальной среде.

20 Апр в 13:15
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир