新世界 新生活

UoBlog 博客程序官方网站

 

C#中IP地址与数字之间的互转(网上流传的方法有Bug)

项目中有IP与Int32类型相互转换的需求,于是在网上搜索了相关代码,但发现网上的代码有Bug,加以修改发布如下:

  1. public static int ConvertIPAddressToNumber(string strIPAddress)  
  2.         {  
  3.             //将目标IP地址字符串strIPAddress转换为数字  
  4.             string[] arrayIP = strIPAddress.Split('.');  
  5.             int sip1 = Int32.Parse(arrayIP[0]);  
  6.             int sip2 = Int32.Parse(arrayIP[1]);  
  7.             int sip3 = Int32.Parse(arrayIP[2]);  
  8.             int sip4 = Int32.Parse(arrayIP[3]);  
  9.             int tmpIpNumber;  
  10.             tmpIpNumber = sip1 * 256 * 256 * 256 + sip2 * 256 * 256 + sip3 * 256 + sip4;  
  11.             return tmpIpNumber;//返回IP地址转换后的数字  
  12.         }  
  13.  
  14.         public static string ConvertNumberToIPAddress(int intIPAddress)  
  15.         {  
  16.             int tempIPAddress;  
  17.             //将目标整形数字intIPAddress转换为IP地址字符串   
  18.             //-1062731518 192.168.1.2  
  19.             //-1062731517 192.168.1.3  
  20.             if (intIPAddress >= 0)  
  21.             {  
  22.                 tempIPAddress = intIPAddress;  
  23.             }  
  24.             else 
  25.             {  
  26.                 tempIPAddress = intIPAddress + 1;  
  27.             }  
  28.             int s1 = tempIPAddress / 256 / 256 / 256;  
  29.             int s21 = s1 * 256 * 256 * 256;  
  30.             int s2 = (tempIPAddress - s21) / 256 / 256;  
  31.             int s31 = s2 * 256 * 256 + s21;  
  32.             int s3 = (tempIPAddress - s31) / 256;  
  33.             int s4 = tempIPAddress - s3 * 256 - s31;  
  34.  
  35.             if (intIPAddress < 0)  
  36.             {  
  37.                 s1 = 255 + s1;  
  38.                 s2 = 255 + s2;  
  39.                 s3 = 255 + s3;  
  40.                 s4 = 255 + s4;  
  41.             }  
  42.             string strIPAddress = s1.ToString() + "." + s2.ToString() + "." + s3.ToString() + "." + s4.ToString();  
  43.             return strIPAddress;//返回IP地址字符串     
  44.         } 

主要修改了 ConvertNumberToIPAddress 方法。原来的代码是什么样子各位在网上搜来看看就知道,运行时的Bug举例:

原始IP转化后的数字通过数字还原出来的IP
0.0.0.000.0.0.1
255.0.0.0-167772160.-255.-255.-255
255.255.0.0-655360.0.-255.-255
118.119.250.241987574296118.119.250.25
0.0.0.2552550.0.1.0
……

上面仅是IP与Int32之间的互转,至于与uint之间的互转网上也有代码,未进行深入测试。

By: uonun
On: Tuesday, March 24, 2009
At: 4:27:34 PM
Comments: 0
Hits: 154
Category: 学习笔记
 
 

为了放下,将事提起——我的而立之年

第一节,成家

对于我来说,如今的27岁已经让我心惊肉跳了,说不定明天早上一睁眼就2012年了。因此,我也可以说已经到了三十而立的时候了。但是,立什么了呢?立业吗?从何说起!成家吗?更没谱。

今天,有女性同学想给我介绍一个女朋友,问我有什么要求。这个问题我自然想过,只是每次都因为看起来太过遥远而没有去进一步总结。今天既然又被问起,于是就做了如下的回复:

1.首要能吃苦,不娇生惯养,知道节俭。
2.不是一个易冲动的人。
3.然后要有一颗年轻的心,不能对什么都不感兴趣。
4.对事比较认真,不轻易以“得过且过”“随便”“差不多就行”这样的态度处事。
5.懂电脑,使用电脑上不是光会看看网页聊聊QQ。
这些是基本品质,其他的,不用说大家也知道。

同学看了这些要求,说我的要求太高了。而我同时将这些要求发给苏苏(一个女性的朋友),她却说这个要求不高。那么就仁者见仁智者见智吧。
同学问:有没有硬要求,比如什么身高、学历、体重、容貌这些的?
我说:
身高?正常即可 155-175,很广的范围了吧。
学历?如果有上面的品质,初中毕业又如何,学历不能代表所有的东西。
体重?不是骨瘦如柴,不是肥得走不动,这个容易满足吧。
容貌?这个不好说,长什么样不能自己定,喜欢什么样也不能形容,你说是吧。

同学又问:可是别人的要求只要心底善良就可以了啊,还要懂电脑,这好多女生都不可以。
至于这个,我倒是觉得不需要要求什么,因为没有害人之心就可以了,这也是基本的道德。对于现在的人来说,不敢要求为善,不为恶已经够了。

倒是苏苏更了解我,她一针见血地说:“你需要一个成熟的人。”。——这是我只知道却没能提炼总结出的东西,谢谢苏苏。

By: uonun
On: Tuesday, March 17, 2009
At: 6:07:30 PM
Comments: 2
Hits: 155
Category: 唱着谁的歌
 
 

成长:《老板的女儿》、《尼斯湖水怪》、《Charlie Bartlett》

更多的,孩子们需要的并不是奢侈的生活、富足的金钱或者优越的条件,而是对话、交流、沟通和因此而彼此感受到的关爱--这需要更多的时间更多的精力和更细致的心思。

说到这里,我突然想起,需要这些的何尝就只是孩子们?正在赡养父母的我们,是否忽视了老家父母的孤独寂寞?真的是每个月寄回去那么些钱就足够了么?他们什么都不缺?--他们只需要关心和陪伴,他们只没有关心和陪伴,这着实让人悲哀。

孩子也罢,老人也罢,总之都是家庭。总之都需要关爱。爱--无法量化却有时时需要的东西。我又想起了《爱如梳》。细微处的爱很温馨,它油然而生,突然将你包裹,仿佛初春的雪,渐渐融化沁入你的心灵。这样的爱最持久,最难忘,最动人。

By: uonun
On: Tuesday, October 28, 2008
At: 9:23:15 PM
Comments: 1
Hits: 547
Category: 看电影
 
 

UoBlog 支持 MetaWeblog Api,可以离线发表日志

博客系统 内含 MetaWeblog Api,可以通过任何支持该API的客户端程序发表日志。

您的 Api 地址是:<您的博客地址>/MetaWeblog.aspx

Api 地址示例:http://www.ourome.com/MetaWeblog.aspx

已成功测试的离线发布客户端:

1.使用Windows Live Writer发表日志

优点:

  1. 日志中插入的图片可以自动生成缩略图,也可以单独设置图片FTP将图片上传到博客程序之外
  2. 分多次将日志发布到多个博客程序。

缺点:

  1. 无法添加博客标签字段。(除非发布到日志内容)
  2. 无法设置置顶、推荐。
  3. 无法手动设置对用户更友好的Url链接地址。
  4. 无法发布日志引用通告和参考链接。(除非发布到日志内容)

2.使用Zoundry Raven 发表日志

优点:

  1. 日志中插入的图片可以发布到诸多网络相册(如:Picasa、Flickr等)
  2. 可设置Tag标签、可发送引用通告(Trackback Ping)。
  3. 同时将日志发布到多个博客程序。
  4. 可自动为图片链接添加rel="lightbox"属性以支持lightbox效果。

缺点:

  1. 无法正确选择日志分类...

下面以 Windows Live Writer 为例,示意如何配置 MetaWeblog Api 客户端进行离线发表日志。

By: uonun
On: Wednesday, October 22, 2008
At: 4:49:06 AM
Comments: 0
Hits: 750
Category: 实验室
 
 

春暖柳绿花开尽,花都谢了<续>

那是小小的桃林,
寂静的深处,
薄雾朦胧,似枯似荣。

那是古老的凉亭,
斑驳的门联,破碎的栏杆。
唱词人缓缓轻歌,惨淡凄伤。

那是江南的越剧,
绝妙的诗词,完美的唱腔。
清凉婉转,萦绕悠扬。

春暖柳绿,几多落英缤纷。
开尽繁花,幻象痴醉迷人。
几番嬉戏,
几番日落,
几番月影。

花开尽,花开尽,
未曾离别梦已醒。
歌尤在,
尤记凉亭,
尤记桃林。

花谢了,花谢了,
当时梦境,似有还无。
却只眼前,
唯有斑驳凉亭,
唯有朦胧桃林。

By: uonun
On: Monday, October 13, 2008
At: 5:03:00 PM
Comments: 0
Hits: 528
Category: 唱着谁的歌
 
 

MSN聊天记录查看器v1.0 beta

前言:

现在使用MSN(Windows Live Messenger)的人越来越多,但是这款软件却没有给我们提供良好的方式来查看聊天记录。而每次通过MSN默认的聊天记录查看方式,载入XML的时间特别的长,我也因此而头疼不已。于是便有了开发这个软件的想法。

介绍:

通过检索注册表信息取得在本机登录过的所有MSN帐号,再根据各自帐号设置的聊天记录保存路径读取XML形式的聊天记录,并在主窗口中显示出来。

功能:

  1. 监测本机MSN程序版本,即时提醒安装最新版本。
  2. 查看本机登录过的所有MSN帐号。
  3. 查看各帐号下所有聊天记录(无需登录)。
  4. 好友列表按字母排序
  5. 支持聊天记录搜索
  6. 支持MSN默认表情标签
  7. 聊天记录分页显示,解析速度更快,更易浏览

下载:

本地下载

By: uonun
On: Monday, March 03, 2008
At: 5:13:15 PM
Comments: 0
Hits: 626
Category: 实验室
 
 
当前第 1 页(共 18 页 103 条记录) 1234