發新話題 Report thanks

Socket 應用之『表單資料查詢』:對付“威而剛”留言板廣告

Socket 應用之『表單資料查詢』:對付“威而剛”留言板廣告
其實不只有賣威而剛會使用留言板打廣告程式,現在我已經發現有N 種產品都使用這種程式打廣告。
而且可能因為效果不錯,所以產品越來越多,從關鍵字阻擋已經應付不暇了...

打辨識數字驗證?這個辦法行不通,因為從收集的資訊看來,有些真的是從留言板乖乖的留言的,所以簡單的英文、數字是難不倒那些“外國人”的。(應該是外國人,因為無論是留言內容還是連結網站都是英文的)

後來我歸納的方法為,目前看來廣告留言還不會偽裝IP,所以我打算以後不是“台灣”人留言,我就不給留言了!(對岸的同胞我對不起你們了)

運作邏輯

1.取得$_SERVER['REMOTE_ADDR']遠端IP 位址
2.從TWNIC RMS系統查詢該IP 位址是否隸屬TWNIC 管控範圍
3.是TWNIC 範圍IP 才可以留言

參考網址查詢封包

查詢時的封包

POST /twnic/User/Member/Search/main2_2.jsp HTTP/1.1
Accept:image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/x-shockwave-flash,*/*
Referer:http://rms.twnic.net.tw/twnic/login.jsp
Accept-Language:zh-tw
Content-Type:application/x-www-form-urlencoded
Accept-Encoding:gzip,deflate
User-Agent:Mozilla/4.0(compatible;MSIE 5.01;Windows NT 5.0)
Host:rms.twnic.net.tw
Content-Length:24
Connection:Keep-Alive
Cache-Control:no-cache
Cookie:JSESSIONID=CF5B9E70E9718A016CDC24E0869CFE8E

queryString=61.64.94.159

該IP 為TWNIC 管轄封包

HTTP/1.0200OK
Date:Mon,12Feb 200704:07:48GMT
Server:Apache/2.0.52(Red Hat)
Set-Cookie:JSESSIONID=67591344F9214361AF32223487EEF1C2;Path=/twnic
Content-Type:text/html;charset=big5
Content-Length:4796
X-Cache:MISS from www
Connection:keep-alive

:
該IP 位址詳細內容,在此忽略
:

非TWNIC 管轄封包,將重新導引至另外的畫面,在此沒有拿來當做判斷的依據

HTTP/1.0302Moved Temporarily
Date:Mon,12Feb 200704:10:43GMT
Server:Apache/2.0.52(Red Hat)
Location:http://rms.twnic.net.tw/t ... ng=82.194.62.23
Content-Type:text/html;charset=big5
Content-Length:0
X-Cache:MISS from www
Connection:keep-alive

實作程式
複製內容到剪貼板
代碼:
<?php
$socket =socket_create (AF_INET,SOCK_STREAM,SOL_TCP );
$ip_address ='rms.twnic.net.tw';
$search_ip =$_SERVER['REMOTE_ADDR'];
$port ='80';
$post_file ="/twnic/User/Member/Search/main2_2.jsp";
$content_length =strlen("queryString=")+strlen($search_ip );

// HTTP HEAD set
$head ="POST ".$post_file."HTTP/1.1rn";
$head .="Host:".$ip_address."rn";
$head .="Referer:[url]http://rms.twnic.net.tw/twnic/login.jsprn[/url]";
$head .="Content-Type:application/x-www-form-urlencodedrn";
$head .="Accept-Encoding:gzip,deflatern";
$head .="Content-Length:".$content_length."rn";
$head .="rn";
$head .="queryString=".$search_ip."rn";
$head .="rn";

socket_connect($socket,$ip_address,$port );
socket_write($socket,$head,strlen($head ));

unset($web_data );
$data =socket_read ($socket,32);

if (eregi("HTTP/1.0200OK",$data ))echo "台灣IP";

socket_shutdown($socket );
?>
待加強、期許

有空寫成WEB Service 提供給無法使用socket 的使用者,希望TWNIC 不要把這個查詢功能關閉才好。
from:http://www.hoyo.idv.tw/ho ... iew.php?sid=230
如果您喜歡這篇文章,請按「讚」或分享給您的朋友,以示鼓勵。

TOP

thanks