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