ElEctrOstAtIc dIAry (静電気日記) is not blog このページをアンテナに追加 RSSフィード

2008-11-25 チャンプルとは炒めるという意味だったか

[] スパムチャンプル python  スパムチャンプル pythonを含むブックマーク

python で 上記を利用するソース・・・というよりは、

Life with IT さんの ruby 版をまんま移植。

import socket
import re

def CheckSpamIP(check_ip = False):
    # スパムIPアドレス
    spam_ip = "127.0.0.2"

    # IPアドレスが不当な場合はスパムとみなす
    # (単純にXXX.XXX.XXX.XXXかどうかだけチェック)
    if not re.compile("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}").match(check_ip):
        return True

    # IPアドレス逆順並べ替え(AAA.BBB.CCC.DDD -> DDD.CCC.BBB.AAA)
    ip_rev = ".".join(reversed(check_ip.split(".")))

    # 検索ドメイン生成
    host = "%s.dnsbl.spam-champuru.livedoor.com" % ip_rev

    # ドメイン正引き
    try:
        ip = socket.gethostbyname(host)
    except:                    # 正引き失敗時はスパム元IPアドレス以外と判断
        return False


    # 正引き後アドレス判定
    if ip == spam_ip:          # スパム
        return True
    else:                      # スパム以外
        return False

これでいいと思うけどどうかな。

# test
iplist = [
    "192.0.2.1",              # スパム判定用
    "59.106.108.86",          # www.hatena.ne.jp
    "203.131.197.197",        # www.livedoor.com
    "1.2.3",                  # IPアドレス不正
    "",                       # IPアドレス不正
    ]

for ip in iplist:
    ret = CheckSpamIP(ip)
    print "%(ip)s -> %(ret)s" % locals()

1.2.3.4 isn't spam.

192.0.2.1 -> True

59.106.108.86 -> False

203.131.197.197 -> False

1.2.3 -> True

-> True


[] あーやられた  あーやられたを含むブックマーク

いいなぁこれ。


[] 元 google の人作  元 google の人作を含むブックマーク

これ、日本語対応したら絶対使うぞ・・・。

どっか日本の企業が手伝ってやってほしい。