Unity学习Unity获取Android手机局域网(WIFI)IP
Posted 努力码代码走上人生巅峰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity学习Unity获取Android手机局域网(WIFI)IP相关的知识,希望对你有一定的参考价值。
编写.java文件,导入Unity。
unity版本必须大于2018.2及以上。
//JAVA
package com.test1;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test
//匹配C类地址的IP
public static final String regexCIp = "^192\\\\.168\\\\.(\\\\d1|[1-9]\\\\d|1\\\\d2|2[0-4]\\\\d|25\\\\d)\\\\.(\\\\d1|[1-9]\\\\d|1\\\\d2|2[0-4]\\\\d|25\\\\d)$";
//匹配A类地址
public static final String regexAIp = "^10\\\\.(\\\\d1|[1-9]\\\\d|1\\\\d2|2[0-4]\\\\d|25\\\\d)\\\\.(\\\\d1|[1-9]\\\\d|1\\\\d2|2[0-4]\\\\d|25\\\\d)\\\\.(\\\\d1|[1-9]\\\\d|1\\\\d2|2[0-4]\\\\d|25\\\\d)$";
//匹配B类地址
public static final String regexBIp = "^172\\\\.(1[6-9]|2\\\\d|3[0-1])\\\\.(\\\\d1|[1-9]\\\\d|1\\\\d2|2[0-4]\\\\d|25\\\\d)\\\\.(\\\\d1|[1-9]\\\\d|1\\\\d2|2[0-4]\\\\d|25\\\\d)$";
public String getHostIp()
String hostIp;
Pattern ip = Pattern.compile("(" + regexAIp + ")|" + "(" + regexBIp + ")|" + "(" + regexCIp + ")");
Enumeration<NetworkInterface> networkInterfaces = null;
try
networkInterfaces = NetworkInterface.getNetworkInterfaces();
catch (SocketException e)
e.printStackTrace();
InetAddress address;
while (networkInterfaces.hasMoreElements())
NetworkInterface networkInterface = networkInterfaces.nextElement();
Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();
while (inetAddresses.hasMoreElements())
address = inetAddresses.nextElement();
String hostAddress = address.getHostAddress();
Matcher matcher = ip.matcher(hostAddress);
if (matcher.matches())
hostIp = hostAddress;
return hostIp;
return null;
编写Unity脚本:
using UnityEngine;
using UnityEngine.UI;
public class GetIPAddress : MonoBehaviour
public Text text;
// Start is called before the first frame update
void Start()
androidJavaObject jo = new AndroidJavaObject("com.test1.test");
AndroidJavaClass act = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
text.text = "IP:" + jo.Call<string>("getHostIp") + " 端口号:50000";
打包发布Android端进行测试:
以上是关于Unity学习Unity获取Android手机局域网(WIFI)IP的主要内容,如果未能解决你的问题,请参考以下文章
Unity学习Unity获取Android手机局域网(WIFI)IP