安卓里面怎么取以太网IP地址就是插网线的地址
现在好多安卓一体机,安卓微控板之类的都是有两种以上网络方案!一个就是插网线(以太网),另一个就是无线!网络_取本机IP (本对象) 这个命令只能取到WIFI上网的IP地址!
有什么办法获取到插网线的以太网地址?
我现在用的另一个办法用数据报发送数据,接收端接收到的IP就是以太网IP地址!
但是用这个办法如果一体机中间做了转发也就是连接的第二个路由器!
虽然服务器能接收到数据!但是IP地址是第二个路由器的IP!不是一体机IP!
有知道的大神么?用什么办法能解决这个问题?{:3_60:}
你试试看。
<火山程序 类型 = "通常" 版本 = 1 />
方法 取以太网IP <公开 静态 类型 = 文本型 编辑时信息 = "73FF8, 0, 0, 0"
@java.导入 = "android.net.ConnectivityManager\nandroid.net.NetworkCapabilities\nandroid.net.Network\nandroid.net.LinkProperties\njava.net.InetAddress\njava.net.Inet4Address\nandroid.net.LinkAddress"
@禁止流程检查 = 真 @安卓.系统需求 = 21 @安卓.权限需求 = 安卓权限.获取网络状态>
{
@ConnectivityManager cm = (ConnectivityManager) @dt<应用程序>.sGetApp().getSystemService(android.content.Context.CONNECTIVITY_SERVICE);
@ if (cm == null) return "";
@ Network[] networks = cm.getAllNetworks();
@ for (Network network : networks) {
@ NetworkCapabilities nc = cm.getNetworkCapabilities(network);
@ if (nc != null && nc.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) {
@ LinkProperties linkProperties = cm.getLinkProperties(network);
@ if (linkProperties != null) {
@ for (LinkAddress linkAddress : linkProperties.getLinkAddresses()) {
@ InetAddress address = linkAddress.getAddress();
@ if (!address.isLoopbackAddress() && address instanceof Inet4Address) {
@ return address.getHostAddress();
@ }
@ }
@ }
@ }
@ }
@ return "";
}
创世魂 发表于 2025-9-14 22:08
你试试看。
好的!多谢多谢!我这边测试一下! 孤独靖仇 发表于 2025-9-15 09:18
好的!多谢多谢!我这边测试一下!
能不能用?? 创世魂 发表于 2025-9-16 08:54
能不能用??
今天准备去客户那边测试一下!下午就有答案了! 孤独靖仇 发表于 2025-9-16 09:59
今天准备去客户那边测试一下!下午就有答案了!
测试通过!取到以太网IP了!能不能把这个命令加入到更新或者其他模块中?方便大家使用?:噜阿噜 创世魂 发表于 2025-9-16 08:54
能不能用??
测试通过!取到以太网IP了!能不能把这个命令加入到更新或者其他模块中?方便大家使用?:噜阿噜
页:
[1]