2014-02-07 55 views
3

我在本地桌面上运行8080上的NanoHttpd。我可以通过我的浏览器在本地访问服务器​​。该部分按预期工作。是否可以将NanoHttpd限制在本地主机上?

但是,我不希望我的邻居(或更糟的是,世界)也能够访问它在http://my.local.ip.add:8080/

我怎样才能限制它只有本地主机访问,以便我是唯一一个可以看到我的本地运行的NanoHttpd实例服务的这些页面?

+0

您可以阻止防火墙上的端口以防止外部人访问。 – bmeding

回答

5

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) - 因为这会导致绑定操作绑定到本地主机上的端口(而不是使用通配符绑定)

+1

'新的NanoHTTPD(“本地主机”,8080)'完美地工作。 – whiskeyspider

+1

将*** null ***作为主机名传递给NanoHTTPD(int port),它绑定到允许远程访问的所有接口。 –

相关问题