Чтобы отображать правильный контент для моих пользователей, я получаю их страну на основе их IP-адреса. Я получаю несколько сообщений от американских пользователей о том, что контент отображается некорректно. Я всегда проверяю их IP-адреса, и мой API определения страны верен, по какой-то причине американским пользователям назначаются IP-адреса из других стран.
Это обычная практика? Это как-то связано с IPcalypse? Есть ли лучший способ узнать местоположение пользователя?
Редактировать: Я использую API под названием MaxMind, чтобы получить местоположение на основе IP, эта проблема пока возникала только с пользователями IPv4. Последняя проблема, с которой я столкнулся, была с американским пользователем, чей IP-адрес отображался как Малайзия, его IP-адрес был 161.139.224.31, все, что я знаю, это то, что пользователь использует устройство с iOS.
Maxmind - хороший сервис, хотя иногда могут возникать ошибки, поскольку сейчас мы живем в период, когда блоков IPv4 мало, и они продаются и перепродаются на сером рынке. Если вы обнаружите настоящую ошибку, вы можете сообщить им об этом, хотя это не похоже на ошибку.
В основном я подтверждаю местонахождение IP-адреса следующим образом:
Сначала я посмотрю, что об этом скажет Maxmind. Их онлайн-инструмент говорит мне, что это в Малайзии и зарегистрировано на Universiti Teknologi Malaysia. Но так ли это на самом деле?
Во-вторых, я проверю запись whois на предмет адреса. APNIC также говорит он зарегистрирован в UTM. Не очень хорошо для своего предполагаемого американца ...
inetnum: 161.139.0.0 - 161.139.255.255
netname: UTMNET
descr: Universiti Teknologi Malaysia
country: MY
admin-c: UTM1-AP
tech-c: UTM1-AP
status: ALLOCATED PORTABLE
mnt-by: MAINT-MY-UNITEKMY
mnt-irt: IRT-UNITEKMY-NON-MY
changed: hm-changed@apnic.net
changed: hm-changed@apnic.net 20120907
source: APNIC
irt: IRT-UNITEKMY-NON-MY
address: Center for Information and Communication Technology
e-mail: jeff@utm.my
abuse-mailbox: jeff@utm.my
admin-c: UTM1-AP
tech-c: UTM1-AP
auth: # Filtered
mnt-by: MAINT-MY-UNITEKMY
changed: hm-changed@apnic.net 20120906
source: APNIC
role: Universiti Teknologi Malaysia
address: Center for Information and Communication Technology
country: MY
phone: +607-5532470
fax-no: +607-5566164
e-mail: jeff@utm.my
admin-c: UTM1-AP
tech-c: UTM1-AP
nic-hdl: UTM1-AP
mnt-by: MAINT-MY-UNITEKMY
changed: hm-changed@apnic.net 20120906
source: APNIC
% This query was served by the APNIC Whois Service version 1.69.1-APNICv1r0 (UNDEFINED)
Наконец, я проведу трассировку и посмотрю на фактический сетевой путь, используемый для достижения IP-адреса. В таком случае...
$ traceroute 161.139.224.31
traceroute to 161.139.224.31 (161.139.224.31), 30 hops max, 60 byte packets
1 172.28.5.1 (172.28.5.1) 0.181 ms 0.146 ms 0.127 ms
2 62-210-251-1.rev.poneytelecom.eu (62.210.251.1) 1.317 ms 1.480 ms 1.611 ms
3 195.154.1.170 (195.154.1.170) 1.011 ms 1.236 ms 1.300 ms
4 prs-b7-link.telia.net (62.115.40.77) 0.956 ms 0.924 ms 0.917 ms
5 prs-bb3-link.telia.net (213.155.132.192) 1.779 ms prs-bb3-link.telia.net (213.155.134.220) 1.652 ms prs-bb2-link.telia.net (213.155.134.228) 0.898 ms
6 adm-bb4-link.telia.net (213.155.137.156) 15.224 ms adm-bb3-link.telia.net (62.115.135.62) 11.010 ms adm-bb4-link.telia.net (213.155.136.24) 13.345 ms
7 adm-b2-link.telia.net (62.115.141.51) 12.709 ms adm-b2-link.telia.net (213.155.137.197) 12.043 ms adm-b2-link.telia.net (62.115.141.67) 12.702 ms
8 telekommalaysia-ic-149786-adm-b2.c.telia.net (213.248.99.146) 11.203 ms telekommalaysia-ic-301284-adm-b2.c.telia.net (62.115.8.206) 11.131 ms 12.056 ms
9 * * *
10 58.27.55.202 (58.27.55.202) 207.612 ms 202.755 ms 203.625 ms
11 * * *
12 * * *
13 * * *
14 * * *
15 *^C
Здесь мы видим, что он начинается в моем местоположении в Париже, затем передается в Амстердам, а затем в Telekom Malaysia, после чего мы больше не получаем возврата. Последний IP-адрес, на который будет дан ответ, после тех же проверок, также является IP-адресом Telekom Malaysia.
На данный момент крайне маловероятно, что этот IP-адрес находится где-либо, кроме ранее названного малазийского университета. Если пользователь абсолютно уверен, что это неправильно, он может попробовать запустить traceroute со своего конца (например, с помощью приложение iOS для этой цели), и вы можете проверить его результаты на предмет возможных подсказок.
Наконец, возможно, что пользователь подключен к VPN, предоставленной университетом. В этом случае он всегда будет идентифицироваться как находящийся в университете, независимо от его местоположения в мире, и, если он хочет, чтобы его идентифицировали относительно его фактического местоположения, он должен выключить VPN и подключиться напрямую.
Это не только американские пользователи, это могут быть пользователи из любой страны.
И это может произойти по нескольким причинам.
Последнее, вероятно, не имеет отношения к вам, но другие могут иметь значение (и да, у меня все они случались в то или иное время).