各位大哥:
我有一个表第一个第二个字段都是无符号整数类型,第三个字段是字符串,格式如下:
satartip endip area
1065713664 1065723903 USA
1078318080 1078319103 USA
1078319872 1078320639 USA
1078320896 1078456319 USA
1078460416 1078484991 Tai
1078489088 1078517759 USA
1078525952 1078575103 USA
1078583296 1078677503 USA
1078685440 1078722559 USA
1078739456 1078739967 USA
1078780928 1078781951 Japan
1078784000 1078785279 USA
1078787840 1078820863 USA
,恩,上述的整形值其实是ip地址,当用户给出一个具体的IP地址的时候,如果此ip是在某一个startip和endip之间的,那么程序能自动的取出相应的归属地,因为startip和endip共同决定了地区字段area的值,现在我想把上述的对应关系,做成hash表的形式,但是没有想出相应的办法来转换
,希望大家给点意见和建议…
我有一个表第一个第二个字段都是无符号整数类型,第三个字段是字符串,格式如下:
satartip endip area
1065713664 1065723903 USA
1078318080 1078319103 USA
1078319872 1078320639 USA
1078320896 1078456319 USA
1078460416 1078484991 Tai
1078489088 1078517759 USA
1078525952 1078575103 USA
1078583296 1078677503 USA
1078685440 1078722559 USA
1078739456 1078739967 USA
1078780928 1078781951 Japan
1078784000 1078785279 USA
1078787840 1078820863 USA
,恩,上述的整形值其实是ip地址,当用户给出一个具体的IP地址的时候,如果此ip是在某一个startip和endip之间的,那么程序能自动的取出相应的归属地,因为startip和endip共同决定了地区字段area的值,现在我想把上述的对应关系,做成hash表的形式,但是没有想出相应的办法来转换
,希望大家给点意见和建议…
Dictionary<int, int> dty = new Dictionary<int, int>();
dty.Add(1065713664, 1065723903);
.....
hash中可以这样写
hs.add("1065713664",new HashTable("1065723903","USA"));
遍历起来比较麻烦。
放入DataTable中的话,只需要select方法就能确定出来area了
dty.Add(new int[] { 1065713664, 1065723903 }, "USA");
比如现在给一个IP 1078320635,我直接使用ht[1078320635]就可以得到相应的area,需要做的就是怎么样把startip和endip做一个相应的运算,能实现这样的查询.
因为我的startip和endip只是一个IP段范围,在他们之间还有很多IP……
不晓得这样说 你明白没有
比如现在给一个IP 1078320635,我直接使用ht[1078320635]就可以得到相应的area,需要做的就是怎么样把startip和endip做一个相应的运算,能实现这样的查询.
因为我的startip和endip只是一个IP段范围,在他们之间还有很多IP……
不晓得这样说 你明白没有