System.Net.IPAddress.Parse 方法的问题 System.Net.IPAddress.Parse方法的参数应该如何去理解,我给参数传个192.168.0.090就会抛出异常。我不明白是怎么回事想请教下大家,不要笑我,初学!!呵呵 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个正确写法IP地址的字符串,经过Parse之后就会生成一个IPAddress对象,里面会存储一个长32位的整型数字,还会存一些协议之类的数据 IPAddress类:IPAddress 类包含计算机在 IP 网络上的地址。其Parse方法可将 IP 地址字符串转换为 IPAddress 实例。IPAddress myIP = IPAddress.Parse("192.168.0.1"); 参考 抛异常是因为你传入的参数不能被正确转换,可以使用TryParse方法,包含了转换和是否转换成功了试下以下代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.Windows.Forms;namespace ConsoleApplication1 { class Program { static void Main( string[] args ) { System.Net.IPAddress ipAddress; if( System.Net.IPAddress.TryParse( "192.168.0.90", out ipAddress ) ) { Console.Write( "转换成功,您转换的IP地址为:" + ipAddress.ToString() ); } else { Console.Write( "转换失败" ); } Console.ReadLine(); } }} System.Net.IPAddress ip; if (System.Net.IPAddress.TryParse("192.168.0.90", out ip)) { // to do } 那为什么192.168.0.090 !=192.168.0.90 呢?_______________因为192.168.0.090 不是一个IP地址,IP地址是一个字符串,并不是一个整个的数字。 使用IPAddress.Parse方法的时候,我想将192.168.0.010转换成192.168.0.10,但是转换后的结果是192.168.0.8这个是什么原因呢?大虾们,指导下? 你使用TryParse方法;那为什么192.168.0.090 !=192.168.0.90 呢? 你在电脑上面设置IP地址的时候允许你输入“090”吗? 在我的电脑设置为192.168.0.090后,就直接转换成了192.168.0.90。我就是想实现这样的效果!但是我用IPAddress.Parse方法一转换就成报异常,不知道是怎么回事,我查了下好像是说IPAddress使用的是IPV6的协议 string str = "192.168.0.090"; byte[] ips = Array.ConvertAll<string, byte>(str.Split('.'), Convert.ToByte); str = string.Join(".", Array.ConvertAll<byte, string>(ips, Convert.ToString)); IPAddress ip; if (IPAddress.TryParse(str, out ip)) Console.WriteLine(ip); ocx控件怎么加到窗体应用程序中啊? 请教:关于GeckoFX,如果捕获页面中的一些事件? c#中,知道图片名称,怎么获取其在ResouceManager中的索引位置 webbrowser自动提交以后不能正确显示跳转的页面 c# 中关于正则表达式 现在WCF这么火,大家来讨论一下在实际的企业应用中部署和开发中的问题 操作系统相异,导出EXCEL格式相异,寻解决~~ 试图运行项目时出错,无法在web服务器上启动调试 怎样把12345分钟表示成hhh:mm:ss?? 我怎么不能创建Asp.net项目了!(大对马上给分,在线等) 怎么把windowsFrom程序打包成EXE可执行文件 qq企业通
IPAddress myIP = IPAddress.Parse("192.168.0.1");
参考
抛异常是因为你传入的参数不能被正确转换,
可以使用TryParse方法,包含了转换和是否转换成功了
试下以下代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;namespace ConsoleApplication1 {
class Program {
static void Main( string[] args ) {
System.Net.IPAddress ipAddress;
if( System.Net.IPAddress.TryParse( "192.168.0.90", out ipAddress ) ) {
Console.Write( "转换成功,您转换的IP地址为:" + ipAddress.ToString() );
} else {
Console.Write( "转换失败" );
}
Console.ReadLine();
}
}
}
System.Net.IPAddress ip;
if (System.Net.IPAddress.TryParse("192.168.0.90", out ip))
{
// to do
}
_______________
因为192.168.0.090 不是一个IP地址,IP地址是一个字符串,并不是一个整个的数字。
这个是什么原因呢?大虾们,指导下?
我就是想实现这样的效果!但是我用IPAddress.Parse方法一转换就成报异常,不知道是怎么回事,我查了下好像是说IPAddress使用的是IPV6的协议
string str = "192.168.0.090";
byte[] ips = Array.ConvertAll<string, byte>(str.Split('.'), Convert.ToByte);
str = string.Join(".", Array.ConvertAll<byte, string>(ips, Convert.ToString));
IPAddress ip;
if (IPAddress.TryParse(str, out ip))
Console.WriteLine(ip);