Как я ограничиваю, какие страны могут просмотреть мой веб-сайт (PHP)

Чтобы справиться с изменением ориентации и работать соответственно, я сделал следующее:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        Log.i("SCREEN DP","Orientation:"+ getResources().getConfiguration().orientation +" Width = "+getWidthDp());
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Log.i("SCREEN DP","Orientation:"+ newConfig.orientation +" Width = "+getWidthDp());
    }

    public float getWidthDp(){
        DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
        return displayMetrics.widthPixels / displayMetrics.density;
    }
}

Журналы показывают:

I/SCREEN DP: Orientation:1 Width = 411.42856
I/SCREEN DP: Orientation:2 Width = 683.4286
I/SCREEN DP: Orientation:1 Width = 411.42856
I/SCREEN DP: Orientation:2 Width = 683.4286

Не забудьте добавить android:screenOrientation="fullSensor" в манифест, чтобы иметь возможность обрабатывать все ориентации.

11
задан splattne 3 October 2008 в 14:43
поделиться

5 ответов

Используйте базу данных геолокации IP (некоторые свободны), и $ _SERVER ["REMOTE_ADDR"] для получения IP-адреса посетителя.

http://www.maxmind.com/app/geolitecity является бесплатной (менее точной) версией коммерческой.

13
ответ дан 3 December 2019 в 03:37
поделиться

Существует также грушевый пакет

http://pear.php.net/package/Net_Geo

1
ответ дан 3 December 2019 в 03:37
поделиться

Как Gilles, я использовал материал GeoIP MaxMind для этого в прошлом - настроенный с расширением PECL для скорости. Это работает обоснованно хорошо, но...

Требование для такого рода вещи имеет тенденцию прибывать от кого-то, который не понимает, что невозможно надежно определить местоположение посетителей таким образом. Очень важно, что человек, просящий его быть поощренным понять, что это почти бесполезно. Типичная вещь, которая происходит с геолокацией в этом:

Клиент: Я хочу смочь ограничить содержание IP
Dev: Вы действительно знаете, что это невозможно сделать надежно?
Клиент: А-ч да, но эта компания говорит, что они продадут мне что-то, что сделает это
Dev: Да, но это не точно и легко обойти и обычно указывает на плохую бизнес-модель для основанного на Интернете содержания
Клиент:Вы можете это сделать?
Dev:Без разницы...

... Шесть месяцев спустя...

Клиент: Некоторые мои посетители жаловались, что не видят мое содержание и некоторых плохих людей, которые не должны видеть, что он смог к!
Dev: / меня хлопает голову

Это - только один шаг на оттуда к, "может я иметь его так, чтобы, когда пользователь щелкает правой кнопкой в их браузере, немного знака открылось, говоря, что 'эти изображения являются авторским правом Idiot Inc'.?"

Извините, очевидно, в циничном настроении сегодня!

9
ответ дан 3 December 2019 в 03:37
поделиться

Оба из ответов (геолокация, агент пользователя) будут работать, но могут быть побеждены. Кто-то может использовать прокси-сервер или изменить их агент пользователя. Firefox даже имеет плагин с этой целью.

4
ответ дан 3 December 2019 в 03:37
поделиться

Существуют определенные классы, которые могут обнаружить локаль агента пользователя. Попробуйте что-то как этот. Платформа зенда имеет большой класс для этого Zend_Locale

-2
ответ дан 3 December 2019 в 03:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: