protected void ParseAddressString(String value) { String[] splitByPort; splitByPort = value.Split(':'); _hostName = ""; if (splitByPort.Length == 2) { _hostName = splitByPort[0]; _port = UInt16.Parse(splitByPort[1], System.Globalization.NumberStyles.Integer); } List <String> splitByDots = new List <String>(splitByPort[0].Split('.')); if (splitByDots.Count == AddressLengths.IP4_NOPORT && splitByDots.AreAllDigits()) { _resolvedAddress = new IPv4ResolvedAddressPort(value); _resolved = true; } else if (_hostName.Length == 0) { _hostName = splitByPort[0]; _resolved = false; } _type = AddressType.IP4_PORT; _address = value; }
public IPv4AddressPort() : base(EMPTY_ADDRESS, AddressType.IP4_PORT) { _port = 0; _resolved = false; _resolvedAddress = null; _hostName = String.Empty; }
bool ResolveHostName() { bool result = false; try { IPHostEntry hostEntry = Dns.GetHostEntry(_hostName); IPAddress[] addressList = hostEntry.AddressList; for (int x = 0; x < addressList.Length && result == false; x++) { if (addressList[x].AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork && addressList[x].GetAddressBytes()[0] != 169) { _resolvedAddress = new IPv4ResolvedAddressPort(String.Format("{0}:{1}", addressList[x].ToString(), _port)); _resolved = true; result = true; } } } catch (Exception e) { Log.SysLogText(LogLevel.WARNING, "IPv4AddressPort Resolve Host '{0}' Exception {1}", _hostName, e.Message); } return(result); }