May 2009 Archives

HDEラボの桜井です。
昨日のプログラムに、ちょっとだけ機能を追加してみましょう。

追加する機能は、プロキシサーバよりさらに先にあるプロキシサーバ(上位プロキシ)を
経由してインターネットにつなげるものです。

 
# -*- coding: utf-8 -*-
from twisted.web import http, proxy
from twisted.internet import reactor, ssl
from twisted.python import log
import sys
import urlparse
 
# とりあえずログを標準出力へ
log.startLogging(sys.stdout)

# 上位プロキシ設定
proxyHost = "192.168.0.1"
proxyPort = 8080

# プロキシリクエストのクラス
class MyProxyRequest(proxy.ProxyRequest):

  # processメソッドを継承
  def process(self):
    parsed = urlparse.urlparse(self.uri)
    protocol = parsed[0]
    host = parsed[1]
    print self.method

    port = self.ports[protocol]
    if ':' in host:
      host, port = host.split(':')
      port = int(port)
    rest = urlparse.urlunparse(('', '') + parsed[2:])
    if not rest:
      rest = rest + '/'
    class_ = self.protocols[protocol]
    headers = self.getAllHeaders().copy()
    if 'host' not in headers:
      headers['host'] = host
    self.content.seek(0, 0)
    s = self.content.read()

    # 上位プロキシの設定がある場合はこちら
    if proxyHost != "" and proxyPort != 0:
      clientFactory = class_(self.method, self.uri, self.clientproto, headers, s, self)
      self.reactor.connectTCP(proxyHost, proxyPort, clientFactory)
    # プロキシが必要ない場合はこちら
    else:
      clientFactory = class_(self.method, rest, self.clientproto, headers, s, self)
      self.reactor.connectTCP(host, port, clientFactory)

# プロキシクラスを継承
class MyProxy(proxy.Proxy):
  requestFactory = MyProxyRequest

# HTTPプロキシサーバのクラス
class MyProxyFactory(http.HTTPFactory):
  protocol = MyProxy
 
# 実行
reactor.listenTCP(8080, MyProxyFactory())
reactor.run


本当はhttpsのプロキシもやりたいんだけどなぁ...。
HDEラボの桜井です。
いろいろと調査の多い昨今の仕事状況ですが、久しぶりにTwistedでも。

試験用にどうしてもHTTPプロキシサーバが必要だったので、なぜかTwistedで自作。
とりあえず機能は単純。
・HTTPプロキシしかできない(CONNECTメソッドはまだできない)
・上位プロキシに転送できない
・ログは標準出力に出す

# -*- coding: utf-8 -*-
from twisted.web import http, proxy
from twisted.internet import reactor, ssl
from twisted.python import log
import sys

# とりあえずログを標準出力へ
log.startLogging(sys.stdout)

# HTTPプロキシサーバのクラス
class MyProxyFactory(http.HTTPFactory):
  protocol = proxy.Proxy

# 実行
reactor.listenTCP(8080, MyProxyFactory())
reactor.run

WEBブラウザのプロキシ設定をして、アクセスすればログが見れます。
CONNECTメソッド対応、上位プロキシ対応ができたらまた公開します。

(本調査は、HDEが非公式に、毎月20日頃に日経225採用銘柄のドメインに対し、SPFレコードが設定されているかどうかを独自調査し、主要企業の対応動向を毎月レポートするものです)
 2009年5月23日時点での日経225採用銘柄におけるSPFレコード登録の状況は、全体で40件となりました。4月時点の40件から変化は無く、設定率は17.8%となっています。

20090523_225spf.png
<主なトピックス>
・三井化学、KDDI、ソフトバンクが設定を変更

2009年4月の調査
HDEラボの桜井です。

今日確認したら、Fedora11のリリースが5/26から6/2に延期になってますね。
Pythonのバージョンが2.6になってたり、いろいろあるからでしょうか?
http://fedoraproject.org/wiki/Releases/11/Schedule

リリースされたら簡単にチェックしてみたいと思います。

Internet Explorer 8のPUTの挙動

| | Comments (0) | TrackBacks (0)
こんにちわ。
いまさらですが、今年で入社して1年がたちました。
お祝いにルートビアをいただきました。
飲んだその日は、しばらくお腹が痛かったです。

PyPI に登録する方法

| | Comments (0) | TrackBacks (0)
PyPIとは、Python Package Indexの略で、python版CPANのようなものです。 ここに自作のpythonパッケージを登録することで、easy_installで簡単に パッケージのインストールを行うことができます。

1. PyPIにユーザー登録

下記の2通りあります。いずれかの方法でPyPIにユーザー登録します。

  • PyPIのWebから登録する方法

ここから登録

  • コマンドラインから登録する方法 - PyPIに登録したいプロジェクト(setup.pyを含んだもの)がある場合
    • メニューから2を選択
      [rpmbuild@centos5x86 pysilhouette]$ python setup.py register
      running register
      We need to know who you are, so please choose either:
       1. use your existing login,
       2. register as a new user,
       3. have the server generate a new password for you (and email it to you), or
       4. quit
      Your selection [default 1]:  2
      Username: imtaizo
      Password: 
       Confirm: 
         EMail: taizo.ito@hde.co.jp
      

2. PyPIにコードを登録

[rpmbuild@centos5x86 pysilhouette]$ python setup.py register
running register
We need to know who you are, so please choose either:
 1. use your existing login,
 2. register as a new user,
 3. have the server generate a new password for you (and email it to you), or
 4. quit
Your selection [default 1]:  1
Username: imtaizo
Password: 
Server response (200): OK
I can store your PyPI login so future submissions will be faster.
(the login will be stored in /home/rpmbuild/.pypirc)
Save your login (y/N)?y

3. PyPIのホームページで確認

pypi-pysilhouette.png

4. easy_install によるインストール

[root@rhel5x86-64basic2 ~]# easy_install pysilhouette
Searching for pysilhouette
Reading http://cheeseshop.python.org/pypi/pysilhouette/
Reading http://sourceforge.jp/projects/pysilhouette/
Reading http://cheeseshop.python.org/pypi/pysilhouette/0.6.1
Best match: pysilhouette 0.6.1-beta
Downloading http://keihanna.dl.sourceforge.jp/pysilhouette/39732/pysilhouette-0.6.1-beta.tar.gz
Processing pysilhouette-0.6.1-beta.tar.gz
Running pysilhouette-0.6.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-0ZzV-c/pysilhouette-0.6.1/egg-dist-tmp-mDp7xU
zip_safe flag not set; analyzing archive contents...
Adding pysilhouette 0.6.1 to easy-install.pth file

Installed /usr/lib/python2.4/site-packages/pysilhouette-0.6.1-py2.4.egg
Processing dependencies for pysilhouette
HDEラボの桜井です。

Postfix-2.6.0 stableが5/12にリリースされています。
主なトピックは、次の通りです。(超要約)
・Postfixのインスタンスを複数起動することが可能
・TSLがデフォルトでSSLv2を使用しなくなった
・MilterがSendmail-8.14相当に対応
・stress-adaptiveがデフォルトで有効に

機能要件は変わってないとのことですが、RELEASE_NOTESを確認しましょう。

Postfix公式サイト
Postfix stable release 2.6.0
HDEラボの桜井です。
今日も小ネタで。

先ほど、CentOS5(i386、x86_64)をyumでアップデートしようとしたところ、下記のエラーが。
httpd-2.2.3-22.el5.centos.x86_64 from installed has depsolving problems
  --> Missing Dependency: /usr/share/magic.mime is needed by package httpd-2.2.3-22.el5.centos.x86_64 (installed)
Error: Missing Dependency: /usr/share/magic.mime is needed by package httpd-2.2.3-22.el5.centos.x86_64 (installed)

"/usr/share/magic.mime"は、fileパッケージに含まれるもの。
httpdが勝手?に依存しているようです。
httpdのSRPMを入手して、SPECファイルを見たら書いてありました。
Requires: /etc/mime.types, gawk, /usr/share/magic.mime, /usr/bin/find

しょうがないので、fileのrpmパッケージをダウンロードして強制インストールしてみました。
ちなみに、何が変わったのかというと...
- fix #497163 -  Incorrect command name from the core file

About this Archive

This page is an archive of entries from May 2009 listed from newest to oldest.

April 2009 is the previous archive.

June 2009 is the next archive.

Find recent content on the main index or look in the archives to find all content.