如何在Dart / Flutter中获取设备IP
我目前正在编写一个应用,用户需要知道其手机/平板电脑的IP地址。我在哪里可以找到此信息?
我只想知道本地IP地址是什么,例如192.168.x.xxx,而不是路由器的公共IP地址。
到目前为止,我似乎只能找到InternetAddress.anyIPv4
和InternetAddress.loopbackIPv4
。回送地址不是我想要的,因为它是127.0.0.1。
回答:
我想你是说当前连接的Wifi网络的本地IP,对不对?
检查‘dart:io’中的NetworkInterface。
**编辑:Android不支持NetworkInterface.list,如稍后
Mahesh所指出的。除了答案中建议的wifi包之外,还有一个PR可以将其带到连接插件中。
您可能还想使用flutter /plugins中的连接插件检查Wifi是否可用。
在下面,有一个使用NetworkInferface的简单示例。
import 'dart:io';import 'package:flutter/material.dart';
main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: "Network Interface example",
home: new NetworkInterfaceWidget(),
);
}
}
class NetworkInterfaceWidget extends StatefulWidget {
@override
_NetworkInterfaceState createState() => new _NetworkInterfaceState();
}
class _NetworkInterfaceState extends State<NetworkInterfaceWidget> {
String _networkInterface;
@override
initState() {
super.initState();
NetworkInterface.list(includeLoopback: false, type: InternetAddressType.any)
.then((List<NetworkInterface> interfaces) {
setState( () {
_networkInterface = "";
interfaces.forEach((interface) {
_networkInterface += "### name: ${interface.name}\n";
int i = 0;
interface.addresses.forEach((address) {
_networkInterface += "${i++}) ${address.address}\n";
});
});
});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("NetworkInterface"),
),
body: Container(
padding: EdgeInsets.all(10.0),
child: Text("Only in iOS.. :(\n\nNetworkInterface:\n $_networkInterface"),
),
);
}
}
以上是 如何在Dart / Flutter中获取设备IP 的全部内容, 来源链接: utcz.com/qa/435994.html