영원한사랑

 
요즘은 이메일 추출 로봇이 지능화, 다양화 되어서..

헥사 코드로 바꾸더라도 추출될 가능성이 큽니다.

디코딩하면 간단하니까요. 그래도 안하는 것보단 낳으니까...^^;;

또, mailto 링크 보다는 메일 함수를 이용해서.. 메이주소 인코딩시 난수나 문자를 넣어 인코딩 후..

메일 보내는 페이지에서 디코딩하는 방법도 있습니다.



제로보드 기준으로 설명할께요. 다른 게시판은 응용해서 사용하세요.

제로보드 lib.php 파일을 열어서.. function autolink($str) 을 찾습니다.

// URL, Mail을 자동으로 체크하여 링크만듬 바로 위에 아래 헥사코드 함수를 넣어주세요.

        // hex코드로 바꾸는 함수
        function strtohex ($str) {
                $retval="";
                for ($i=0; $i<strlen($str[1]); $i++) {
                        $retval .= "&#x" . bin2hex(substr($str[1], $i, 1)) . ";"; // 헥사코드..
                        // $retval .= "&#" . hexdec(bin2hex(substr($strr, $i, 1))) . ";"; // 유니코드.. (한글 깨짐)
                } return $retval;
        }


그리고, function autolink($str) 함수 내용을 아래 걸로 수정해주시구요.

        // URL, Mail을 자동으로 체크하여 링크만듬
        function autolink($str) {
                // URL 치환
                $homepage_pattern = "/([^\"\'\=\>])(mms|http|HTTP|ftp|FTP|telnet|TELNET)\:\/\/(.[^ \n\<\"\']+)/";
                $str = preg_replace($homepage_pattern,"\\1<a href=\\2://\\3 target=_blank>\\2://\\3</a>", " ".$str);

                // 메일 치환
                $email_pattern = "/([ \n]+)([a-z0-9\_\-\.]+)@([a-z0-9\_\-\.]+)/";
                $str = preg_replace($email_pattern,"\\1<a href=mailto:\\2@\\3>\\2@\\3</a>", " ".$str);

                // Email 추출 방지 인코딩
                //if(eregi("[[:alnum:]_\-]@[[:alnum:]_.\-]",$str)){
                if(eregi("[a-z0-9\_\-\.]@[a-z0-9\_\-\.]",$str)){
                        $str=preg_replace_callback("/([0-9a-zA-Z_\-]+@[0-9a-zA-Z_.\-]+)/ism",strtohex,$str);
                        }

                return $str;
        }


다른 방법은 골뱅이(@,at)를 이미지로 하는 방법도 있습니다.
http://oxtag.com/zboard/zboard.php?id=php&page=1&sn1=&divpage=1&sn=on&ss=on&sc=on&keyword=골뱅이&select_arrange=headnum&desc=asc&no=354