当前位置 博文首页 > unity工具人的博客:unity 获取本机IP

    unity工具人的博客:unity 获取本机IP

    作者:[db:作者] 时间:2021-07-19 22:33

    //工具脚本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;
         }
    }
    
    

    调用

    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);
        }
    }
    
    

    优质学习网站:
    代码先锋网

    cs