本文提供详细教程 记录遇到的难点并帮助同行的朋友们 坚持以最简单的方法传授和把更好的阅读体验带给你们! |
一:需要
有的项目需要本机IP,但是又不可能放在同一个电脑上,所以需要获取IP来更改,来完成所需求。
二:脚本一
1:此脚本无需挂载物体上
using System;
using System.Collections;
using System.Collections.Generic;
using System.Net.NetworkInformation;
using System.Net.Sockets;
using UnityEngine;
public class GeIP
{
public enum address
{
IPv4, IPv6
}
/// <summary>
/// 获取本机IP
/// </summary>
/// <param name="Addfam">要获取的IP类型</param>
/// <returns></returns>
public static string IP(address fam)
{
if (fam== address .IPv6 && !Socket.OSSupportsIPv6)
{
return null;
}
string output = "";
foreach (NetworkInterface item in NetworkInterface.GetAllNetworkInterfaces())
{
NetworkInterfaceType _type1 = NetworkInterfaceType.Wireless80211;
NetworkInterfaceType _type2 = NetworkInterfaceType.Ethernet;
if ((item.NetworkInterfaceType == _type1 || item.NetworkInterfaceType == _type2) && item.OperationalStatus == OperationalStatus.Up)
{
foreach (UnicastIPAddressInformation ip in item.GetIPProperties().UnicastAddresses)
{
if (fam== address.IPv4)
{
if (ip.Address.AddressFamily == AddressFamily.InterNetwork)
{
output = ip.Address.ToString();
}
}
else if (fam== address.IPv6)
{
if (ip.Address.AddressFamily == AddressFamily.InterNetworkV6)
{
output = ip.Address.ToString();
}
}
}
}
}
return output;
}
}
三:脚本二
这个脚本挂载一个空物体上然后运行Unity就可以了,更深的需求需要根据自己需要去实现,欢迎大家讨论
using static GeIP;
public class Ip : MonoBehaviour
{
private string infoText;
void Start()
{
infoText = GeIP.IP(address.IPv4);
}
private void EndValue(string value)
{
InputText = value; //捕捉数据,方便后续操作
Debug.Log("IP内容" + value);
}
}
拥有自己的服务器 让开发工作不再难 |
MyBe
阿里云 —ESC服务器部署和搭建购买方式(图文并排,一目了然)
一键领取阿里全产品2000元优惠券大礼包 (新手必得享超值优惠)
本博客为非营利性个人原创 所刊登的所有作品的著作权均为本人所拥有 本人保留所有法定权利,违者必究! 对于需要复制、转载、链接和传播博客文章或内容的 请及时和本博主进行联系,留言,Email: ChinazJacob@163.com ———————————————————————————————— 版权声明:对于经本博主明确授权和许可使用文章及内容的 使用时请注明文章或内容出处并注明网址 转载请附上原文出处链接及本声明。 |