我有一个本机应用程序,我想存储登录到我的应用程序的用户的位置(只要国家/地区就可以),因此我可以为他们自定义一些功能。
我使用 PHP 作为后端。我做了一些搜索,但没有找到明确的结果。不知道如何获取设备的 IP 以便能够将其转换为某个位置。
谢谢
我有一个本机应用程序,我想存储登录到我的应用程序的用户的位置(只要国家/地区就可以),因此我可以为他们自定义一些功能。
我使用 PHP 作为后端。我做了一些搜索,但没有找到明确的结果。不知道如何获取设备的 IP 以便能够将其转换为某个位置。
谢谢
你看过http://www.ip2location.com/ 你可以在你的php后端使用它来将ip转换为地址
我必须为我以前的项目这样做。最好的办法是不要依赖 IP 地址,尤其是在移动设备上(我的手机 IP 目前在犹他州北部的某个地方,而我实际上在凤凰城)。使用GeoLocation
API。这将为您提供通常相当准确的用户的纬度、经度位置。然后,您可以使用地理编码服务来确定他们在使用反向地理编码的国家/地区。谷歌的GeoCoding API非常棒,他们的条款最近(4 月左右)大幅放宽,使其更易于使用。我还可以从 OpenStreetMaps 推荐 Nominatim(他们的条款非常严格,但您可以使用 MapQuest 的 Nominatim 服务,该服务几乎可以随意使用)
编辑:正如 Pier 提到的,在移动设备上使用 NetworkInfo 需要 ANE。如果您尝试在没有 ANE 的情况下在移动设备上使用它,它会使您的应用程序崩溃。
但是,如果您打算使用 IP,则可以通过NetworkInfo
课程获得它。NetworkInfo.networkInfo.findInterfaces()
会给你一堆NetworkInterface
对象。你会寻找InterfaceAddress
. 但是,我确实警告您,过去我很难将这种方法用于移动设备,尤其是 iOS。此外,我不记得它返回的是网络 IP(即 192.168.1.17)还是连接到网络的实际 IP。本地IP显然对你没有好处。
如果我是你,我会使用地理定位。如果它是移动设备,您可以使用 gps 或手机信号塔(不太准确)来获取他们的位置,但如果这不是您的选择,并且您没有使用服务器端技术(如 php、asp 等)的能力轻松获取ip,也许这篇文章会有所帮助:如何在as3中找到ip地址?