Если это веб-сайт, вы можете проверить HTTP_USER_AGENT. Конечно, это можно подделать.
Если это действительно веб-сайт, дайте пользователям возможность посмотреть версию, не оптимизированную для мобильных устройств!
У меня есть мобильный сайт и мне нужно сделать IP гео-локацию. Я просмотрел несколько баз данных IP->локация. Одной из них была MaxMind. У них есть бесплатная база данных, которая обеспечивает точность на уровне города, но у них также есть платная база данных (за довольно разумную плату), которая дает вам больше деталей, включая то, с какого мобильного оператора заходит пользователь.
Зайдите на http://www.maxmind.com и введите свой IP в поле для демо-записи (оно находится на первой странице), и вы увидите, какие детали вы можете получить. Вот API, который вам понадобится от них: http://www.maxmind.com/app/isp
Как я уже сказал, я использую только базу данных с детализацией на уровне города, поэтому не могу ручаться за покрытие мобильных операторов. Но во время моих первых тестов она всегда выдавала хорошие значения для мобильных телефонов Великобритании, Ирландии и Азии, которые я тестировал.
Благодарю, Кевин.
Вот что я использую:
if (preg_match("@(android|iphone|opera mini|blackberry)@is",$_SERVER['HTTP_USER_AGENT'])) {
$mobile = true;
} else {
$mobile = false;
}
Вы можете использовать hostip. У них есть постоянно обновляемый список IP-адресов и их местонахождение.
Вы можете получить такую информацию, как физическое местоположение, страну и имя хоста для этого IP-адреса.
Вы можете опросить данные и сравнить имя хоста со списком заранее определенных операторов связи с помощью регулярного выражения или чего-то подобного.
Подробнее здесь: http://www.hostip.info/