【问题标题】:Overriding DNS for an application on Android为 Android 上的应用程序覆盖 DNS
【发布时间】:2017-03-22 22:45:43
【问题描述】:

我有一个关于 Android 上的 DNS 的简单问题。

有什么方法可以只为我自己的应用更改 DNS 服务器吗?

更具体地说,我正在使用 loopj 的 Android AsyncHttp 库 (http://loopj.com/android-async-http/)。

查看源代码,我在 setProxy 方法中注意到了这条评论:

/**
     * Sets the Proxy by it's hostname and port
     *
     * @param hostname the hostname (IP or DNS name)
     * @param port     the port number. -1 indicates the scheme default port.
     */
    public void setProxy(String hostname, int port) {
        final HttpHost proxy = new HttpHost(hostname, port);
        final HttpParams httpParams = this.httpClient.getParams();
        httpParams.setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
    }

所以我假设将例如“8.8.8.8”和 -1 作为 setProxy 的参数我可以达到我的目标,但显然我错了。

建议?

【问题讨论】:

    标签: android dns loopj android-async-http


    【解决方案1】:

    我想你误解了 setProxy() 方法,它是用来为你的 HttpClient 设置代理的。

    主机名:可以是 IP 地址,即:“192.168.1.100”或 DNS 名称,如“proxy.example.com”。 端口:它是您的代理服务器正在侦听的 tcp/udp 端口​​。

    至于您更改 DNS 的要求,我认为这是不可能的。

    【讨论】:

    • 那么,以编程方式更改 DNS 是不可能的?
    猜你喜欢
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 2018-08-12
    相关资源
    最近更新 更多