[英]How can you find all the IP addresses in a selected block of text with a javascript bookmarklet?
我才剛剛開始學習JavaScript,所以我沒有技巧來弄清楚我認為的一個小問題。
我正在與一個Wordpress博客一起工作,該博客作為我們社區的常見問題解答,並且我正在嘗試匯總一些工具以簡化評論的管理。 Internet Duct Tape的Greasemonkey工具(例如Comment Ninja)對大多數功能都很有幫助,但是我希望能夠獲得我們從中獲得注釋的所有IP地址的列表,以便跟蹤趨勢等。
我只希望能夠在評論頁面上選擇一堆文本,然后在Firefox中單擊一個書簽( http://bookmarklets.com ),這會彈出一個窗口,列出所有在選擇中找到的IP地址。
更新:
javascript:ipAddresses=document.getSelection().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g).join("<br>");newWindow=window.open('', 'IP Addresses in Selection', 'innerWidth=200,innerHeight=300,scrollbars');newWindow.document.write(ipAddresses)
區別在於,我打開了一個類似於Jacob答案的新窗口,而不是像levik的答案那樣發出警報消息。 該警報不提供滾動條,這對於具有許多IP地址的頁面可能是一個問題。 但是,與Jacob的解決方案不同,我需要列表是垂直的,因此我使用了levik的提示來創建一個列表。
加入,而不是levik的\\ n 。
謝謝大家的幫助。
在Firefox中,您可以執行以下操作:
javascript:alert(
document.getSelection().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g)
.join("\n"))
工作原理:
在IE上,您獲得選擇的方式有些不同,但是原理是相同的。 要使其成為跨瀏覽器,您需要檢查哪種方法可用。 您還可以執行更復雜的輸出(例如創建浮動DIV並將所有IP插入其中)。
使用正則表達式檢測IP地址。 幾個例子:
/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/
/^([1-9][0-9]{0,2})+\.([1-9][0-9]{0,2})+\.([1-9][0-9]{0,2})+\.([1-9][0-9]{0,2})+$/
javascript:document.write(document.getSelection().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g))
只需創建一個新書簽並將javascript粘貼到
CmdUtils.CreateCommand({
name: "findip",
preview: function( pblock ) {
var msg = 'IP Addresses Found<br/><br/> ';
ips = CmdUtils.getHtmlSelection().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g);
if(ips){
msg += ips.join("<br/>\n");
}else{
msg += 'None';
}
pblock.innerHTML = msg;
},
execute: function() {
ips = CmdUtils.getHtmlSelection().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g);
if(ips){
CmdUtils.setSelection(ips.join("<br/>\n"));
}
}
})
這是一篇有關獲取訪問者IP地址的好文章。 如果需要,可以在他們的注釋之外顯示此內容,也可以將其作為標簽或字段包含在頁面中,以便以后引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.