簡體   English   中英

如何使用javascript小書簽找到選定文本塊中的所有IP地址?

[英]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"))

工作原理:

  • 從瀏覽器獲取選擇文本(在FF中為“ document.getSelection()”,在IE中為“ document.selection.createRange()。text”)
  • 應用正則表達式行進IP地址(如Muerr所建議)-這將導致字符串數組。
  • 將此數組連接成一個字符串,由返回字符分隔
  • 提醒該字符串

在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地址的好文章。 如果需要,可以在他們的注釋之外顯示此內容,也可以將其作為標簽或字段包含在頁面中,以便以后引用。

請查看rot13小書簽 ,以了解單擊小書簽時選擇文本並執行操作(在本例中為替換)的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM