[英]Client/Server Programming, Cannot convert System.net.IPAddress to String
[英]how to convert string to System.Net.IPAddress
我如何將字符串轉換為C#/。net 3.5中的System.Net,IPAddress
我嘗試了此操作,但收到此錯誤“無法將類型'string'轉換為'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();
}
}
}
使用靜態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
以避免引發任何異常。
IPAddress.Parse
方法接受一個字符串。
foreach (string line in File.ReadAllLines("proxy.txt"))
{
IPAddress ip = IPAddress.Parse(line);
// ...
}
foreach (IPAddress ip in File.ReadAllLines("proxy.txt").Select(s => IPAddress.Parse(s))) {
// ...
}
您可以使用IPAddress.Parse方法,例如:
private static void parse(string ipAddress)
{
try
{
IPAddress address = IPAddress.Parse(ipAddress);
}
您可以使用IPAddress.Parse來做到這一點。
您可以做的一件事是...在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();
}
}
}
我希望這有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.