Network.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /*----------------------------------------------------------------
  2. // Copyright (C) 2007 liu523@QQ.COM
  3. // 版权所有。
  4. // 开发者:liu523@QQ.COM团队
  5. // 文件名:Network.cs
  6. // 文件功能描述: 获取网络某些信息的类。
  7. //----------------------------------------------------------------*/
  8. using System;
  9. using System.Net;
  10. using System.Net.Sockets;
  11. namespace RemoteControlLib.Common
  12. {
  13. /// <summary>
  14. /// 获取网络某些信息的类
  15. /// </summary>
  16. public class Network
  17. {
  18. /// <summary>
  19. /// 获取IP地址
  20. /// </summary>
  21. /// <param name="hostname">主机名</param>
  22. /// <returns></returns>
  23. public static string GetIpAdrress(string hostname)
  24. {
  25. string ip;
  26. try
  27. {
  28. IPHostEntry iphe = Dns.GetHostEntry(hostname);
  29. foreach (IPAddress address in iphe.AddressList)
  30. {
  31. ip = address.ToString();
  32. if (ip != "") return ip;
  33. }
  34. }
  35. catch
  36. {
  37. }
  38. return "";
  39. }
  40. /// <summary>
  41. /// 获取本地计算机名
  42. /// </summary>
  43. /// <returns></returns>
  44. public static string GetHostName()
  45. {
  46. return Dns.GetHostName();
  47. }
  48. /// <summary>
  49. /// 字符形式的IP地址转换为IPAddress实例
  50. /// </summary>
  51. /// <param name="IP"></param>
  52. /// <returns></returns>
  53. public static IPAddress ToIPAddress(string IP)
  54. {
  55. return IPAddress.Parse(IP);
  56. }
  57. /// <summary>
  58. /// byte数组形式的IP地址转换为IPAddress实例
  59. /// </summary>
  60. /// <param name="IP"></param>
  61. /// <returns></returns>
  62. public static IPAddress ToIPAddress(byte[] IP)
  63. {
  64. return new IPAddress(IP);
  65. }
  66. /// <summary>
  67. /// 分开IP地址为byte数组形式
  68. /// </summary>
  69. /// <param name="ip"></param>
  70. /// <returns></returns>
  71. public static byte[] SplitIP(string ip)
  72. {
  73. byte[] IP=new byte[4];
  74. string []splitIp=ip.Split(new char[]{'.'});
  75. if(splitIp.Length!=4)return null;
  76. try
  77. {
  78. for (int i = 0; i < 4; i++)
  79. IP[i] =byte.Parse(splitIp[i]);
  80. }
  81. catch
  82. {
  83. return null;
  84. }
  85. return IP;
  86. }
  87. }
  88. }