我在本地桌面上运行8080上的NanoHttpd。我可以通过我的浏览器在本地访问服务器。该部分按预期工作。是否可以将NanoHttpd限制在本地主机上?
但是,我不希望我的邻居(或更糟的是,世界)也能够访问它在http://my.local.ip.add:8080/
。
我怎样才能限制它只有本地主机访问,以便我是唯一一个可以看到我的本地运行的NanoHttpd实例服务的这些页面?
我在本地桌面上运行8080上的NanoHttpd。我可以通过我的浏览器在本地访问服务器。该部分按预期工作。是否可以将NanoHttpd限制在本地主机上?
但是,我不希望我的邻居(或更糟的是,世界)也能够访问它在http://my.local.ip.add:8080/
。
我怎样才能限制它只有本地主机访问,以便我是唯一一个可以看到我的本地运行的NanoHttpd实例服务的这些页面?
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)
- 因为这会导致绑定操作绑定到本地主机上的端口(而不是使用通配符绑定)
'新的NanoHTTPD(“本地主机”,8080)'完美地工作。 – whiskeyspider
将*** null ***作为主机名传递给NanoHTTPD(int port),它绑定到允许远程访问的所有接口。 –
您可以阻止防火墙上的端口以防止外部人访问。 – bmeding