取IP位址所在城市

2021-06-04 17:14:51 字數 2909 閱讀 2352

using system;

using system.collections.generic;

using system.linq;

using system.web;

using system.io;

using system.text;

using system.text.regularexpressions;

///

///ipscaner 的摘要說明

///

public class ipscaner

//公共屬性#region 公共屬性

public string datapath

}public string ip

}public string country

}public string local

}public string errmsg

}//搜尋匹配資料#region 搜尋匹配資料

private int qqwry()

)|(1\d)|(2[0-4]\d)|(25[0-5]))\.)((\d)|(1\d)|(2[0-4]\d)|(25[0-5]))";

regex objre = new regex(pattern);

match objma = objre.match(ip);

if (!objma.success)

long ip_int = this.iptoint(ip);

int nret = 0;

if (ip_int >= iptoint("127.0.0.0") && ip_int <= iptoint("127.255.255.255"))

else if ((ip_int >= iptoint("0.0.0.0") && ip_int <= iptoint("2.255.255.255")) || (ip_int >= iptoint("64.0.0.0") && ip_int <= iptoint("126.255.255.255")) || (ip_int >= iptoint("58.0.0.0") && ip_int <= iptoint("60.255.255.255")))

objfs = new filestream(this.datapath, filemode.open, fileaccess.read);

trylong range = recordcount;

long rangb = 0;

long recno = 0;

while (rangb < range - 1)

if (ip_int > this.startip)

rangb = recno;

else

range = recno;

}this.getstartip(rangb);

this.getendip();

if (this.startip <= ip_int && this.endip >= ip_int)

else

objfs.close();

return nret;

}catch

// ip位址轉換成int資料#region ip位址轉換成int資料

private long iptoint(string ip)

;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;

}//int轉換成ip#region int轉換成ip

private string inttoip(long ip_int)

//獲取起始ip範圍#region 獲取起始ip範圍

private long getstartip(long recno)

// 獲取結束ip#region 獲取結束ip

private long getendip()

//獲取國家/區域偏移量#region 獲取國家/區域偏移量

private string getcountry()

return " ";

}//獲取國家/區域字串#region 獲取國家/區域字串

private string getflagstr(long offset)

offset = convert.toint64(buff[0].tostring()) + convert.toint64(buff[1].tostring()) * 256 + convert.toint64(buff[2].tostring()) * 256 * 256;

}else

}if (offset < 12)

return " ";

objfs.position = offset;

return getstr();

}//getstr#region getstr

private string getstr()

else

}return str;

}//獲取ip位址#region 獲取ip位址

public string iplocation()

public string iplocation(string datapath, string ip)}}

呼叫:

PHP 根據IP位址獲取所在城市

檔案目錄 iplocation qqwry qqwry.dat ipcity.class.php ipcity.class.php檔案 開啟ip資料庫 if fd fopen dat path,rb explode函式分解ip位址,運算得出整數形結果 userip explode userip us...

根據IP定位使用者所在城市資訊

即可返回當前ip所在的省市資訊。本地js呼叫 var myprovince remote ip info province var mycity remote ip info city var mydistrict remote ip info district function html 為 您所...

根據IP定位使用者所在城市資訊

當我們在頁面中填寫個人資料中的省市資訊時,頁面會根據當前使用者所在的城市自動選中省市下拉選項 當我們訪問某個大型站點時,程式會自動進入到使用者當前所在的城市頻道。這些功能是如何實現的呢?今天我們來通過例項講解如何根據ip定位使用者所在城市資訊。根據當前使用者本地ip位址,查詢ip位址庫,獲取ip所在...