如何从IP地址字符串中删除端口号
问题描述:
我想在列表框中将IP从端口中分离出来。但我只是离开端口号和“:”我将如何使它,所以“:”被删除,只剩下IP。如何从IP地址字符串中删除端口号
IPS是这样的:
192.168.0.12:80
192.168.0.2:123
192.168.0.3:1337
for (int i = 0; i < lb.Items.Count; i++)
{
string item = lb.Items[i] as string;
item = item.Substring(item.LastIndexOf(":"));
lb.Items[i] = item;
}
答
你可以解析成一个URI然后检查Host
的值:
String ip = "192.168.0.3:1337";
Uri uri = new Uri("http://" + ip);
MessageBox.Show(uri.Port.ToString()); //shows 1337
MessageBox.Show(uri.Host.ToString()); //shows 192.168.0.3
这具有确保URI的好处是有效的,并会为不包含:
而使用IndexOf(':')
不会,所以你就必须做一个额外的检查,看地址工作,如果字符串.Contains
它首先
答
你可以分割字符串:
string ip = item.Split(":")[0]
,或者你可以创建一个Uri对象,并从中提取Host值
'项目= item.Substring(0,item.LastIndexOf( ':') );' – itsme86