Как связать несколько указанных IP-адрес на BaseHTTPRequestHandler Python
Мой сервер имеет 3 IP-адреса, 127.0.0.1, 192.168.0.100 и IP-адрес в Интернете. Я собираюсь запустить службу, написанную python, на этом сервере, но я не хочу, чтобы ее выставляли в Интернете. Я использую класс BaseHTTPRequestHandler для реализации этого сервиса, так как связать только 127.0.0.1 и 192.168.0.100, но не другой?
2 ответа
Я думаю, у вас есть два варианта.
1) Прослушивание всех интерфейсов, но переопределение BaseHTTPRequestHandler.init проверяет адрес клиента и сбрасывает соединение, если оно приходит с нежелательного интерфейса
2) Создайте несколько сокетов, по одному на каждый адрес, который вы хотите прослушать. SocketServer.serve_forever() блокируется, поэтому вам придется либо использовать один поток на адрес, либо перейти на более сложную среду, например витую.
Как правило, маршрутизаторы имеют опцию, в которой вы можете позволить серверам быть видимыми или невидимыми. Если на маршрутизаторе вы установили свой сервер невидимым, то ваш сервер не будет доступен через Интернет.