자바스크립트 북마크를 사용하여 선택한 텍스트 블록에서 모든 IP 주소를 어떻게 찾을 수 있습니까?

StackOverflow https://stackoverflow.com/questions/72921

문제

저는 이제 막 자바스크립트를 배우기 시작했기 때문에 사소한 문제라고 생각하는 것이 무엇인지 파악하는 기술이 없습니다.

저는 우리 커뮤니티의 FAQ 역할을 하는 Wordpress 블로그를 운영하고 있으며 댓글을 더 쉽게 관리할 수 있는 몇 가지 도구를 함께 사용하려고 노력하고 있습니다. Comment Ninja와 같은 Internet Duct Tape의 Greasemonkey 도구, 대부분의 경우 유용하지만 추세 등을 추적하기 위해 의견을 받고 있는 모든 IP 주소 목록을 얻을 수 있기를 원합니다.

댓글 페이지에서 여러 텍스트를 선택하고 북마크릿(http://bookmarklets.com) Firefox에서는 선택 항목에서 발견된 모든 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)

차이점은 알리다 메시지를 보면 levik의 답변과 마찬가지로 Jacob의 답변과 비슷한 새 창이 열립니다.그만큼 알리다 IP 주소가 많은 페이지에서 문제가 될 수 있는 스크롤 막대를 제공하지 않습니다.하지만 Jacob의 솔루션과 달리 목록이 수직이어야 했기 때문에 levik의 힌트를 사용하여
Levik 대신 조인을 위해 .

모든 도움을 주셔서 감사합니다.

도움이 되었습니까?

해결책

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").
  • Muerr가 제안한 대로 IP 주소를 행진하기 위해 정규식을 적용합니다. 그러면 문자열 배열이 생성됩니다.
  • 이 배열을 반환 문자로 구분된 하나의 문자열로 결합합니다.
  • 해당 문자열에 대해 경고합니다.

선택 항목을 얻는 방법은 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))

새 북마크를 만들고 해당 자바스크립트를 붙여넣기만 하면 됩니다.

유비쿼터스에서 이를 수행하는 방법

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 ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top