Подтвердить что ты не робот

Невозможно подключиться через WiFi, но возможно через мобильные данные

У меня есть php файл с именем test.php хранящийся на моем сервере Openshift (http://phpgear-shifz.rhcloud.com/v1/test.php) с приведенным ниже кодом.

<?php
echo "Hello";

задача

Я пытаюсь загрузить текст из приложения Android.

проблема

Я получаю java.net.UnknownHostException: Unable to resolve host "phpgear-shifz.rhcloud.com": No address associated with hostname при подключении через сеть WiFi, но с Mobile Data все в порядке.

Код активности Android

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);

        final TextView tvTest  = (TextView) findViewById(R.id.tvTest);

        new AsyncTask<Void, Void, String>() {
            @Override
            protected String doInBackground(Void... params) {

                try {
                    final URL url = new URL("http://phpgear-shifz.rhcloud.com/v1/test.php");
                    final BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
                    final StringBuilder sb = new StringBuilder();
                    String line;
                    while((line = br.readLine())!=null){
                        sb.append(line).append("\n");
                    }

                    br.close();
                    return sb.toString();

                } catch (IOException e) {
                    e.printStackTrace();
                    return "Error: "  + e.getMessage();
                }
            }

            @Override
            protected void onPostExecute(String result) {
                tvTest.setText(result);
            }
        }.execute();

    }

ОТВЕТЫ

по WiFi

onWiFi

на мобильных данных

onMobileData

Вопрос

1) Почему я не могу подключиться через WiFi network где с Mobile Data все в порядке?

2) Как решить эту проблему?

ПРИМЕЧАНИЕ: когда-нибудь он подключается, иногда нет.

4b9b3361

Ответ 1

Ваш DNS не знает IP-адрес запрошенного сайта.

У вас возникли проблемы, потому что DNS вашего Wi-Fi-соединения не может преобразовать имя хоста в IP-адрес. И ваш носитель данных использует другой DNS, который имеет IP-адрес, связанный с именем хоста.

Попробуйте изменить адрес своего DNS-сервера на маршрутизаторе Wifi или использовать прямой IP-адрес веб-сайта, если он доступен.

Вот некоторые адреса DNS-серверов Google

  • 8.8.8.8
  • 8.8.4.4

Ответ 2

У вас может быть проблема с IPv4 и IPv6. Многие мобильные планы данных используют IPv6, в то время как большинство установок WiFi в настоящее время используют IPv4, поэтому вы можете переключать не только сетевой уровень; вы действительно можете переключать протоколы уровня 3.

Запись DNS для phpgear-shifz.rhcloud.com указывает на IPv4-адрес (только), поэтому он должен работать на WiFi. Но, может быть, ваше мобильное устройство использует DNS-сервер IPv6 и не может разрешить имя через IPv4?

Другая возможность: ваше мобильное устройство может иметь более общую проблему в стеке IPv4. Ваши мобильные данные могут использовать одну из технологий перехода от 6 до 4 и, таким образом, обходить вашу локальную проблему IPv4.

Я заметил еще одну проблему с DNS-именем phpgear-shifz.rhcloud.com, хотя я сомневаюсь, что это связано.

Эта запись DNS - это запись CNAME, которая указывает на другую запись CNAME, которая, в свою очередь, указывает на запись A на Amazon. Двойные направления CNAME являются нарушением DNS RFC, хотя большинство resolver должно обрабатывать его в любом случае. Кроме того, если это была проблема, она должна влиять как на данные WiFi, так и на мобильные данные.