如何将字符串转换为 System.Net.IPAddress
Posted
技术标签:
【中文标题】如何将字符串转换为 System.Net.IPAddress【英文标题】:how to convert string to System.Net.IPAddress 【发布时间】:2012-08-15 18:57:25 【问题描述】:如何在 C#/.net 3.5 中将字符串转换为 System.Net,IPAddress
我试过了,但我得到了这个错误“无法将类型'字符串'转换为'System.Net.IPAddress'”
public void Form1_Load(object sender, EventArgs e)
IPHostEntry host;
string localIP = "?";
host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in File.ReadAllLines("proxy.txt"))
if (ip.AddressFamily.ToString() == "InterNetwork")
localIP = ip.ToString();
textBox1.Text = ip.ToString();
【问题讨论】:
ReadAllLines
不返回 IPAddress
【参考方案1】:
使用静态IPAddress.Parse
方法将string
解析为IPAddress
:
foreach (var ipLine in File.ReadAllLines("proxy.txt"))
var ip = IPAddress.Parse(ipLine);
if (ip.AddressFamily.ToString() == "InterNetwork")
localIP = ip.ToString();
textBox1.Text = ip.ToString();
如果文件中的行并非总是有效的 IP 地址,您可能需要考虑使用 TryParse
以避免引发任何异常。
【讨论】:
【参考方案2】:IPAddress.Parse
方法接受一个字符串。
foreach (string line in File.ReadAllLines("proxy.txt"))
IPAddress ip = IPAddress.Parse(line);
// ...
【讨论】:
【参考方案3】:foreach (IPAddress ip in File.ReadAllLines("proxy.txt").Select(s => IPAddress.Parse(s)))
// ...
【讨论】:
【参考方案4】:你可以使用 IPAddress.Parse 方法 例如:
private static void parse(string ipAddress)
try
IPAddress address = IPAddress.Parse(ipAddress);
【讨论】:
【参考方案5】:您可以使用IPAddress.Parse 来执行此操作。
【讨论】:
【参考方案6】:你可以做的一件事是...... 在 foreach 循环中,您需要一个与您的集合匹配的实例。我的意思是,如果你有,例如,你有一个字符串列表,像这样:
List<string> lMyList
程序员不能使用 int 或 double 的实例遍历此列表...
foreach (int lIterator in lMyList)
// code
这根本行不通,它会抛出一个关于“int”不是“string”类型的语法错误。
要解决这个问题,您需要像这样遍历您的列表
foreach (string lIterator in lMyList)
// code
现在,回答你的问题。 IPAddress 是它自己的类和类型。不能简单地使它成为一种字符串。但是,有一些方法可以解决这个问题。将字符串显式转换为 IP 地址。但是,您需要先遍历您的列表。
foreach (string lLine in File.ReadAllLines("proxy.txt"))
// Code In Here
这将迭代文本文件中的所有行。由于它是一个文本文件,它返回一个字符串列表。为了迭代字符串列表,程序员需要一个字符串局部变量来迭代它。
接下来,您需要将当前字符串解析为本地 IP 地址实例。有几种方法可以做到这一点,1) 您可以简单地解析 (System.Net.IPAddress.Parse()) 字符串,或者您可以将字符串 TryParse (IPAddress.TryParse()) 转换为 IPAddress。
Method One:
// This will parse the current string instance to an IP Address instance
IPAddress lIPAddress = IPAddress(lLine);
Method Two:
IPAddress lIPAddress; // Local instance to be referenced
// At runtime, this will "Try to Parse" the string instance to an IP Address.
// This member method returns a bool, which means true or false, to say,
// "Hey, this can be parsed!". Your referenced local IP Address instance would
// have the value of the line that was parsed.
if (IPAddress.TryParse(lLine, out lIPAddress))
// Code
好的,现在我们解决了这个问题。让我们结束吧。
// Iterates over the text file.
foreach (string lLine in File.ReadAllLines("proxy.txt"))
// Create a local instance of the IPAddress class.
IPAddress lIPAddress;
// Try to Parse the current string to the IPAddress instance.
if (IPAddress.TryParse(lLine, out lIPAddress))
// This means that the current line was parsed.
// Test to see if the Address Family is "InterNetwork"
if (string.Equals("InterNetwork", lIPAddress.AddressFamily.ToString()))
TextBox1.Text = lIPAddress.ToString();
我希望这会有所帮助!
【讨论】:
以上是关于如何将字符串转换为 System.Net.IPAddress的主要内容,如果未能解决你的问题,请参考以下文章
在javascript中如何将字符串转换为数组和数组转换为字符串
将rowdatapacket转换为数组,如何将mysql node.js api rowdatapacket转换为数组,将字符串转换为数组