192.168.1.5 69.52.220.44 10.152.16.23 192.168.3.10 192.168.1.4 192.168.2.1 10.152.16.23 69.52.220.44 192.168.1.4 192.168.1.5 192.168.2.1 var unsortedIps = new[] { "192.168.1.4", "192.168.1.5", "192.168.2.1", "10.152.16.23", "69.52.220.44" }; var sortedIps = unsortedIps .Select(Version.Parse) .OrderBy(arg => arg) .Select(arg => arg.ToString()) .ToList(); 69.52.220.44 => 69 * 255 * 255 * 255 + 52 * 255 * 255 + 220 * 255 + 44