Flutter/PHP:获取运行应用程序的手机的IP地址



我正在尝试获取用户的IP地址。我需要在数据库中输入用户的IP地址。我的应用程序正在我在Flutter中创建的移动设备上运行。我使用MySql和PHP作为后端。

到目前为止我已经尝试过了。

  1. 获取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);
});
}
  1. 使用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']]));

最新更新