Можно ли ограничить NanoHttpd только локальным хостом?
Я запускаю NanoHttpd на 8080 на моем локальном рабочем столе. Я могу получить доступ к серверу локально в моем браузере по адресу http://localhost:8080/
, Эта часть работает, как ожидалось.
Однако я не хочу, чтобы мой сосед (или, что еще хуже, мир) также мог получить к нему доступ в http://my.local.ip.add:8080/
,
Как я могу ограничить его только локальным доступом, чтобы я был единственным, кто может видеть, как эти страницы обслуживаются моим локально работающим экземпляром NanoHttpd?
1 ответ
NanoHttpd - это только один исходный файл: вот соответствующий клип:
/**
* Constructs an HTTP server on given hostname andport.
*/
public NanoHTTPD(String hostname, int port) {
this.hostname = hostname;
this.myPort = port;
setTempFileManagerFactory(new DefaultTempFileManagerFactory());
setAsyncRunner(new DefaultAsyncRunner());
}
/**
* Start the server.
* @throws IOException if the socket is in use.
*/
public void start() throws IOException {
myServerSocket = new ServerSocket();
myServerSocket.bind((hostname != null) ? new InetSocketAddress(hostname, myPort) : new InetSocketAddress(myPort));
Хотя я не в состоянии попробовать это отсюда, похоже, что вы могли бы достичь желаемого эффекта, создав свой сервер с new NanoHTTPD("localhost",8080)
- поскольку это приведет к привязке операции привязки к порту на локальном хосте (вместо использования подстановочного знака)