现在我们要求了,通过IP来判断当今是访问机器所在的位置,我现在可以通过了纯真IP库得到了IP和所在地址了,但是他不能够和我数据库里面得城市相匹配.就比如纯真取出来得是重庆市铁通,但是我的数据库对应的是重庆市或者重庆,请问各位有什么好的解决办法没有.
解决方案 »
- 通过反射获给实体类赋值,出现[A]CrabsModel.User 无法强制转换为 [B]CrabsModel.User。
- 请问谁知道怎么将页面上的表格,保存为TXT文件,并且保存TXT文件后,不只是有数据,而且必须有上面的表格
- NHibernate查询问题..在线等答案...
- Menu控件有没办法做成这样的形式
- 将截断字符串或二进制数据
- 这样的刷新要怎么实现!
- 在asp.net+ms sql一般怎么实现数据库的完整性:实体完整性,参照完整性
- 各位大虾,推荐一本值得珍藏的ASP.NET的经典书籍吧!!!
- asp.net 如何发FAX?
- 在WIN2003中安装了NET2003后提示错误,怎么设置为“则您必须是“Debugger Users”(调试器用户)组的成员或管理员”
- Asp.net异步刷新问题
- 有没有人可以给我解释一下下面的代码中的代码是这么执行的
/// <summary>
/// IP地址转换成Int数据
/// </summary>
/// <param name="ip"></param>
/// <returns></returns>
public long IpToInt(string ip)
{
char[] dot = new char[] { '.' };
string[] ipArr = ip.Split(dot);
if (ipArr.Length == 3)
ip = ip + ".0";
ipArr = ip.Split(dot); long ip_Int = 0;
long p1 = long.Parse(ipArr[0]) * 256 * 256 * 256;
long p2 = long.Parse(ipArr[1]) * 256 * 256;
long p3 = long.Parse(ipArr[2]) * 256;
long p4 = long.Parse(ipArr[3]);
ip_Int = p1 + p2 + p3 + p4;
return ip_Int;
}
#endregion #region int转换成IP
/// <summary>
/// int转换成IP
/// </summary>
/// <param name="ip_Int"></param>
/// <returns></returns>
public string IntToIP(long ip_Int)
{
long seg1 = (ip_Int & 0xff000000) >> 24;
if (seg1 < 0)
seg1 += 0x100;
long seg2 = (ip_Int & 0x00ff0000) >> 16;
if (seg2 < 0)
seg2 += 0x100;
long seg3 = (ip_Int & 0x0000ff00) >> 8;
if (seg3 < 0)
seg3 += 0x100;
long seg4 = (ip_Int & 0x000000ff);
if (seg4 < 0)
seg4 += 0x100;
string ip = seg1.ToString() + "." + seg2.ToString() + "." + seg3.ToString() + "." + seg4.ToString(); return ip;
}
#endregion #region 获取起始IP范围
/// <summary>
/// 获取起始IP范围
/// </summary>
/// <param name="recNO"></param>
/// <returns></returns>
public long GetStartIp(long recNO)
{
long offSet = firstStartIp + recNO * 7;
//objfs.Seek(offSet,SeekOrigin.Begin);
objfs.Position = offSet;
byte[] buff = new Byte[7];
objfs.Read(buff, 0, 7); endIpOff = Convert.ToInt64(buff[4].ToString()) + Convert.ToInt64(buff[5].ToString()) * 256 + Convert.ToInt64(buff[6].ToString()) * 256 * 256;
startIp = Convert.ToInt64(buff[0].ToString()) + Convert.ToInt64(buff[1].ToString()) * 256 + Convert.ToInt64(buff[2].ToString()) * 256 * 256 + Convert.ToInt64(buff[3].ToString()) * 256 * 256 * 256;
return startIp;
}
#endregion在找一个IP库