-
-
Save JohnWong/6045886 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name BYR BBS ip2location | |
// @namespace http://bbs.byr.cn/ | |
// @description 使北邮人论坛用户发贴IP地址后附加物理地址信息 | |
// @include http://forum.byr.edu.cn/* | |
// @include http://forum.byr.cn/* | |
// @include http://bbs.byr.edu.cn/* | |
// @include http://bbs6.byr.edu.cn/* | |
// @include http://bbs.byr.cn/* | |
// @include http://bbs6.byr.cn/* | |
// @include http://www.newsmth.net/* | |
// @version 1.7 | |
// @author Binux | |
// @author John Wong | |
// @grant GM_xmlhttpRequest | |
// ==/UserScript== | |
function showLoading(ip, font){ | |
var span = document.createElement("span"); | |
span.innerHTML = " [ LOADING... ]"; | |
span.className = ip; | |
font.appendChild(span); | |
} | |
function onLoad(event) { | |
var fonts = document.getElementsByTagName("font"); | |
for ( var i = 0,font;font = fonts[i];i++ ) | |
{ | |
var result = font.innerHTML.match(/\[FROM:\D{0,5}([0-9a-fA-F\.:]+.)\]/); | |
if(result && font.lastChild.nodeName != "SPAN") | |
{ | |
var ip = result[1].replace("*","0"); | |
showLoading(ip, font); | |
sendRequest(ip); | |
return; | |
} | |
} | |
} | |
function sendRequest(ip){ | |
setTimeout(function() {GM_xmlhttpRequest({ | |
method: 'GET', | |
url: 'https://pytool.sinaapp.com/geo?type=json&pos=1&ip='+ip, | |
onload: function(responseDetails) { | |
var response = responseDetails.responseText; | |
var ret = eval('(' + response + ')')['geo'] | |
var ip = ret['ip'] | |
var loc = ret['loc'] | |
showAddress({'ip': ip,'loc': loc}); | |
} | |
})}, 0); | |
} | |
function showAddress(response){ | |
var spans = document.getElementsByClassName(response.ip); | |
for(var i=0,span;span = spans[i];i++){ | |
span.innerHTML = " [" + response.loc + "] "; | |
} | |
} | |
onLoad(); | |
window.addEventListener("load", onLoad, false); | |
window.addEventListener("AutoPagerAfterInsert", onLoad, false); | |
document.addEventListener("DOMNodeInserted", onLoad, false); |
在sina appengine上架设了ip转地址的服务,使用该服务地址后,对于ipv6的解析速度加快,流量也大大减少。
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
增加北邮网络调整后内网ip判断
增加对ipv6地址支持(耗费更多流量)
Chrome使用方法:
下载后解压出byr-bbs-ip2location.user.js,点击Chrome中工具->扩展程序,将js文件拖到扩展程序列表区域。