拆分地址

时间:2017-04-29 21:18:37

标签: c#

我有一个小问题,我需要拆分地址,如' 127.0.0.1:7777'用符号':'两个变量首先一个导致ip,第二个导致php list($IP, $Port) = explode(':', '127.0.0.1:7777');

上的端口示例

2 个答案:

答案 0 :(得分:3)

要提取IPv4和IPv6的IP地址和端口,您可以使用以下代码:

Uri url;
string ipv4 = "127.0.0.1:7777";
if (Uri.TryCreate(String.Format("http://{0}", ipv4), UriKind.Absolute, out url))
{
    string ip = url.Host;
    int port = url.Port;
    Console.WriteLine($"IP: {ip} Port: {port}");
}

使用IPv6地址对其进行测试:

string ipv6 = "[2001:db8:1f70::999:de8:7648:6e8]:100";

输出:

  

IP:127.0.0.1端口:7777

     

IP:2001:db8:1f70:0:999:de8:7648:6e8端口:100

.net小提琴:https://dotnetfiddle.net/QWAt4N

答案 1 :(得分:0)

如果你真的想使用Split,你可以这样做,以使它也适用于IPv6。

string ip = "127.0.0.1:8080";
int lastIndexOfColon = ip.LastIndexOf(':');
string host = ip.Substring(0, lastIndexOfColon);
string port = ip.Substring(lastIndexOfColon + 1);