diff --git a/SteamKit2/SteamKit2/Util/NetHelpers.cs b/SteamKit2/SteamKit2/Util/NetHelpers.cs index f7d34f9d7..11854954c 100644 --- a/SteamKit2/SteamKit2/Util/NetHelpers.cs +++ b/SteamKit2/SteamKit2/Util/NetHelpers.cs @@ -22,7 +22,7 @@ public static IPAddress GetLocalIP( Socket activeSocket ) if ( ipEndPoint == null || ipEndPoint.Address == IPAddress.Any ) throw new InvalidOperationException( "Socket not connected" ); - + return ipEndPoint.Address; } @@ -42,7 +42,7 @@ public static uint GetIPAddressAsUInt( IPAddress ipAddr ) Span addrBytes = stackalloc byte[ 4 ]; ipAddr.TryWriteBytes( addrBytes, out _ ); - + return Unsafe.BitCast( IPAddress.NetworkToHostOrder( BitConverter.ToInt32( addrBytes ) ) ); } @@ -110,27 +110,17 @@ public static CMsgIPAddress ObfuscatePrivateIP( this CMsgIPAddress msgIpAddress public static bool TryParseIPEndPoint( string stringValue, [NotNullWhen( true )] out IPEndPoint? endPoint ) { - var colonPosition = stringValue.LastIndexOf( ':' ); - - if ( colonPosition == -1 ) + if ( !IPEndPoint.TryParse( stringValue, out endPoint ) ) { - endPoint = null; - return false; - } - - if ( !IPAddress.TryParse( stringValue.AsSpan( 0, colonPosition ), out var address ) ) - { - endPoint = null; return false; } - if ( !ushort.TryParse( stringValue.AsSpan( colonPosition + 1 ), out var port ) ) + if ( endPoint.Port == 0 ) { endPoint = null; return false; } - endPoint = new IPEndPoint( address, port ); return true; }