2015-09-19 4 views
2

Мне нужно иметь доступ к определенным URL-адресам программно. Я использую URLConnection следующим образом:Как получить имя или IP прокси-сервера в управляемой сети?

URL url = new URL(http,   
        myProxy.com, // I need to know this parameter 
        -1,    
        http://www.example.com/);  

Как получить имя прокси-сервера, используемого в управляемой сети.

Когда я использую браузер, например, chrome, он соединяет меня с прокси-сервером, который делает запросы в Интернете. Как получить имя прокси-сервера?

ответ

2

Вы можете попробовать использовать Java, ProxySelector класс, чтобы сделать это, ее короткий пример it'usage из Java proxy configuration руководства:

private Proxy findProxy(URI uri) 
{ 
    try 
    { 
     ProxySelector selector = ProxySelector.getDefault(); 
     List<Proxy> proxyList = selector.select(uri); 
     if (proxyList.size() > 1) 
      return proxyList.get(0); 
    } 
    catch (IllegalArgumentException e) 
    { 
    } 
    return Proxy.NO_PROXY; 
} 

Чтобы получить имя хоста и IP-адрес, вы можете использовать InetSocketAddress, который вы можете получить от прокси-сервера, например:

InetSocketAddress addr = (InetSocketAddress) proxy.address(); 
if(addr != null) { 
    System.out.println("proxy hostname : " + addr.getHostName()); 
    System.out.println("proxy port : " + addr.getPort()); 
} 

Но я знаю, что это необходимо, чтобы установить свойство системы, чтобы сделать это:

System.setProperty("java.net.useSystemProxies","true"); 

Еще одно решение - использовать proxy-vole library для этого. Вот некоторые usage examples.

 Смежные вопросы

  • Нет связанных вопросов^_^