2010-10-21 162 views
0

我正在從xml文件讀取IP地址,並將其放入IPaddress.parse()中,然後使用它,但它不起作用。它會顯示「指定了無效的IP地址」。但是當我手動編寫它時,它就可以工作。C#中的IP地址解析問題#

爲什麼我在讀取xml文件後無法使用IP地址。我試圖抹去「白色空間」,它又說了一遍。

string ipadd; //take ip address from xml and use 
... 
IPAddress ipaddre = IPAddress.Parse(ipadd); 
------------------------------ 
IPAddress ipaddre = IPAddress.Parse("255.255.255.255") 

爲什麼這些結果不一樣?

+1

什麼是IPADD則傳遞到IPAddress.Parse的精確值? – 2010-10-21 16:45:59

+0

嘗試檢查ipadd在調試中的實際值是什麼 – Andrey 2010-10-21 16:46:28

+0

我把ipadd的值放在一個標籤上,它是一樣的,它們都是255.255.255.255 ......但我會嘗試調試並返回。 – gheddo 2010-10-21 18:43:44

回答

3

如果ipadd == "255.255.255.255"那麼應該沒有任何工作停止。

顯然,雖然ipadd != "255.255.255.255"

,當您將它傳遞給IPAddress.Parse()方法我建議調試,設置斷點和檢查的ipadd值。

+2

+1爲斷點。 – 2010-10-21 16:52:15

0

在那IPADD =「255.255.255.2552」,假設那麼只有兩種可能性存在:

1)一個異常被拋出的解析,因此你的比較是沒有發生,或 2)您正在使用的方法來比較這兩個結果是不合適的。

我強烈建議你添加兩個語句,並放置一個斷點的下一行,然後你會看到正是你正在處理:

IPAddress ipaddreReal = IPAddress.Parse(ipadd); 
IPAddress ipaddreFake = IPAddress.Parse("255.255.255.255"); 
bool result = ipAddre.Real.Equals(ipaddreFake);