我正在尝试获取用户的IP地址。我需要在数据库中输入用户的IP地址。我的应用程序正在我在Flutter中创建的移动设备上运行。我使用MySql和PHP作为后端。
到目前为止我已经尝试过了。
- 获取IP flutter插件,但这并没有返回正确的IP。它正在返回路由器分配的IP地址
I。
Future<void> initPlatformState() async {
String ipAddress;
try {
ipAddress = await GetIp.ipAddress;
} catch (err) {
ipAddress = 'Failed to get ipAddress.';
print(ipaddress);
}
if (!mounted) return;
setState(() {
_ip = ipAddress;
print(_ip);
});
}
使用Ipify.org获取IP地址。但这是一个付费的选择。在收到1万次请求后,我们需要购买该服务。
const url1 = 'https://api.ipify.org'; var response1 = await http.get(url1).timeout(Duration(seconds: 5), onTimeout: (){ // throw Exception(); setState((){ visible = false ; } ); //or you can also return null; }); if(response1.statusCode == 200) { // The response body is the IP in plain text, so just // return it as-is. ipaddress = response1.body; }
现在我前面读到,从PHP我们可以使用$_SERVER['REMOTE_ADDR'];
获得IP地址但不确定它在这种情况下是否有效。
任何关于你们如何获得IP地址的建议。
您可以使用https://ip.seeip.org/jsonip?以获取JSON格式的公共IP。
它是免费的
如果你想在PHP中制作自己的代码,请使用下面的代码。
<?php
exit(json_encode(["ip" => $_SERVER['REMOTE_ADDR']]));