2010-10-21 4 views
0

Я читаю IPaddress из xml-файла, и я помещаю его в файл IPaddress.parse(), а затем использую его, но он не работает. он говорит: «Указан неверный IP-адрес». но когда я пишу его вручную, он работает.Ip Address Parse Problem in C#

Почему я не могу использовать IP-адрес после чтения xml-файла. Я попытался стереть «белые пробелы», сказал он снова.

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 ? –

+0

попробуйте проверить, что такое фактическое значение 'ipadd' в debug – Andrey

+0

Я положил значение ipadd на метку, это то же самое, оба из них 255.255.255.255 ... но я попытаюсь отлаживать и возвращать назад. – gheddo

ответ

3

Если ipadd == "255.255.255.255", то не должно быть ничего, что остановит его от работы.

Очевидно, что, хотя, ipadd != "255.255.255.255"

Я хотел бы предложить отладку, установив точку останова, и контролирует значение ipadd при передаче его в метод IPAddress.Parse().

+2

+1 для точек останова. –

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);