当前位置:   article > 正文

Unity获取本机局域和广域网IP_小明看最新永久局域网

小明看最新永久局域网
  1. /***
  2. *
  3. * Title: MXFramework
  4. * 主题: 获取本机IP
  5. * Description:
  6. * 功能:获取局域网和广域网IP
  7. *
  8. * Date: 2020
  9. * Version: v5.0版本
  10. * Modify Recoder:
  11. *
  12. */
  13. using System;
  14. using System.Collections;
  15. using System.Net.NetworkInformation;
  16. using System.Net.Sockets;
  17. using UnityEngine;
  18. using UnityEngine.Networking;
  19. namespace Mx.Net
  20. {
  21. /// <summary>本机IP</summary>
  22. public class LocalIP :MonoBehaviour
  23. {
  24. /// <summary>获取局域网IP</summary>
  25. public string GetLANIP(ADDRESSFAM Addfam)
  26. {
  27. if (Addfam == ADDRESSFAM.IPv6 && !Socket.OSSupportsIPv6)
  28. {
  29. return null;
  30. }
  31. string output = string.Empty;
  32. foreach (NetworkInterface item in NetworkInterface.GetAllNetworkInterfaces())
  33. {
  34. #if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN
  35. NetworkInterfaceType _type1 = NetworkInterfaceType.Wireless80211;
  36. NetworkInterfaceType _type2 = NetworkInterfaceType.Ethernet;
  37. if ((item.NetworkInterfaceType == _type1 || item.NetworkInterfaceType == _type2) && item.OperationalStatus == OperationalStatus.Up)
  38. #endif
  39. {
  40. foreach (UnicastIPAddressInformation ip in item.GetIPProperties().UnicastAddresses)
  41. {
  42. //IPv4
  43. if (Addfam == ADDRESSFAM.IPv4)
  44. {
  45. if (ip.Address.AddressFamily == AddressFamily.InterNetwork)
  46. {
  47. output = ip.Address.ToString();
  48. }
  49. }
  50. //IPv6
  51. else if (Addfam == ADDRESSFAM.IPv6)
  52. {
  53. if (ip.Address.AddressFamily == AddressFamily.InterNetworkV6)
  54. {
  55. output = ip.Address.ToString();
  56. }
  57. }
  58. }
  59. }
  60. }
  61. return output;
  62. }
  63. /// <summary>获取广域网IP</summary>
  64. public void GetWANIp(Action<string> finish)
  65. {
  66. string url = "http://icanhazip.com/";
  67. StartCoroutine(GetWANIp(url, finish));
  68. }
  69. public IEnumerator GetWANIp(string url, Action<string> finish)
  70. {
  71. using (UnityWebRequest uwr = UnityWebRequest.Get(url))
  72. {
  73. yield return uwr.SendWebRequest();
  74. if (finish != null) finish(uwr.downloadHandler.text);
  75. }
  76. }
  77. }
  78. public enum ADDRESSFAM
  79. {
  80. IPv4, IPv6
  81. }
  82. }

Unity QQ交流群:299412191 欢迎对Unity感兴趣的同学加入.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/97867
推荐阅读
相关标签
  

闽ICP备14008679号