资源描述:
《具体实现过程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、地址分配主要对IP地址进行自动的拆分与合并,为了方便管理,我们在后台数据库里将IP地址已十进制的方式进行存储和管理,但是这样的存储对于我们的拆分与合并是很不利的,所以我们要通过十进制与二进制之间的转换算法,将其十进制数转换为二进制数,再对其进行拆分与合并,最后在转换回十进制存储。然后通过简单的排序方法对其进行排序。具体排序算法的代码为:classProgram{staticvoidMain(string[]args){string[]IPS=newstring[]{"192.168.1.1","20.1
2、68.1.1","200.200.200.200"};Array.Sort(IPS,newComparison(delegate(stringip1,stringip2){returnComparer.Default.Compare(ConvertToUInt(ip1),ConvertToUInt(ip2));}));}privatestaticuintConvertToUInt(stringip1){string[]sip=ip1.Split('.');re
3、turn(uint.Parse(sip[0])<<24)
4、(uint.Parse(sip[1])<<16)
5、(uint.Parse(sip[2])<<8)
6、(uint.Parse(sip[3]));}}二进制与十进制转换的代码为:usingSystem;classmyclass{staticvoidMain(){Console.WriteLine("请你输入点分十进制IP,我为你转换成二进制IP:");stringinput=Console.ReadLine();string[]arr=input.Sp
7、lit('.');stringoutip="";foreach(stringstrinarr){try{outip+=Convert.ToString(int.Parse(str),2);}catch{}}Console.WriteLine(outip);Console.Read();}}比如你输入192.168.1.1输出是:110000001010100011管理员通过WebServer来查看用户的IP地址申请条件,进入IP管理系统客户端访问数据库服务器,输入用户申请信息,如单位及所需地址数,即可根
8、据该系统功能对其需求的IP地址进行自动分配,寻找最接近用户需求量的地址段。具体实现原理为:(2)管理员通过WebServer来查看用户的IP地址退订申请,进入IP管理系统客户端访问数据库服务器,输入用户退订的IP地址段信息,如单位及退订地址段,即可根据该系统功能对其需求的IP地址进行自动回收,在未分配数据库中寻找最接近用户退订的IP地址段的数据,将其与其他地址段比对后,进行合并,并存储,如不能合并,则直接插入到未分配数据库中,并对数据库进行更新。具实现原理为:(具体可以参考<基于网络位的IP地址合并>中
9、的合并算法,昨天给你发的那个.kdh格式的文件)include#include#include#defineSTR_IP(str,n)sprintf((str),"u.u.u.u",(n)&0xff,((n)>>8)&0xff,((n)>>16)&0xff,((n)>>24)&0xff)typedefstruct_range_t{unsignedintstart;unsignedintfinish;unsignedintmerge;struct_
10、range_t*next;}range_t;#defineMAX_NODE100000typedefstruct{range_tlist[MAX_NODE];unsignedintnum;}range_list_t;intmerge(FILE*fp,range_list_t*list);intshow_list(constrange_list_t*list);intsortlist_qsort(constvoid*aa,constvoid*bb){range_t*a,*b;a=(range_t*)aa;
11、b=(range_t*)bb;if(a->finishstart)return-1;if(a->start>b->finish)return1;if(a->finish>b->start)return-1;if(a->startfinish)return1;return0;}intmerge_ip(range_t*range,range_list_t*list);unsignedintpw(unsignedintbase,u