|
|
- using System.Net;
- using System.Net.NetworkInformation;
- using System.Net.Sockets;
-
- public class IPGrabber{
-
- public static string GetIP(ADDRESSFAM Addfam)
- {
- //Return null if ADDRESSFAM is Ipv6 but Os does not support it
- if (Addfam == ADDRESSFAM.IPv6 && !Socket.OSSupportsIPv6)
- {
- return null;
- }
-
- string output = "";
-
- foreach (NetworkInterface item in NetworkInterface.GetAllNetworkInterfaces())
- {
- #if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN
- NetworkInterfaceType _type1 = NetworkInterfaceType.Wireless80211;
- NetworkInterfaceType _type2 = NetworkInterfaceType.Ethernet;
-
- if ((item.NetworkInterfaceType == _type1 || item.NetworkInterfaceType == _type2) && item.OperationalStatus == OperationalStatus.Up)
- #endif
- {
- foreach (UnicastIPAddressInformation ip in item.GetIPProperties().UnicastAddresses)
- {
- //IPv4
- if (Addfam == ADDRESSFAM.IPv4)
- {
- if (ip.Address.AddressFamily == AddressFamily.InterNetwork)
- {
- output = ip.Address.ToString();
- }
- }
-
- //IPv6
- else if (Addfam == ADDRESSFAM.IPv6)
- {
- if (ip.Address.AddressFamily == AddressFamily.InterNetworkV6)
- {
- output = ip.Address.ToString();
- }
- }
- }
- }
- }
- return output;
- }
- }
-
- public enum ADDRESSFAM
- {
- IPv4, IPv6
- }
|