Archive

Archive for 2月, 2008

携帯端末のIPアドレス帯域

2月 28th, 2008

iモードID通知について(pdf)
DoCoMoもついにID通知サービス始めるらしい。

IPアドレス帯域制限用.htacces。
2008-07-03 docomo、WILLCOM追加、emobile新規追加

emobileは公式にみつからんかったので保留。

order deny,allow
deny from all

# DoCoMo
# http://www.nttdocomo.co.jp/service/imode/make/content/ip/
allow from 210.153.84.0/24
allow from 210.136.161.0/24
allow from 210.153.86.0/24
allow from 124.146.174.0/24
allow from 124.146.175.0/24

# au
# http://www.au.kddi.com/ezfactory/tec/spec/ezsava_ip.html
allow from 210.169.40.0/24
allow from 210.196.3.192/26
allow from 210.196.5.192/26
allow from 210.230.128.0/24
allow from 210.230.141.192/26
allow from 210.234.105.32/29
allow from 210.234.108.64/26
allow from 210.251.1.192/26
allow from 210.251.2.0/27
allow from 211.5.1.0/24
allow from 211.5.2.128/25
allow from 211.5.7.0/24
allow from 218.222.1.0/24
allow from 61.117.0.0/24
allow from 61.117.1.0/24
allow from 61.117.2.0/26
allow from 61.202.3.0/24
allow from 219.108.158.0/26
allow from 219.125.148.0/24
allow from 222.5.63.0/24
allow from 222.7.56.0/24
allow from 222.5.62.128/25
allow from 222.7.57.0/24
allow from 59.135.38.128/25
allow from 219.108.157.0/25
allow from 219.125.151.128/25
allow from 219.125.145.0/25
allow from 121.111.231.0/25
allow from 121.111.231.160/27
allow from 121.111.227.0/25

# SoftBank
# http://developers.softbankmobile.co.jp/dp/tech_svc/web/ip.php
allow from 123.108.236.0/24
allow from 123.108.237.0/27
allow from 202.179.204.0/24
allow from 202.253.96.224/27
allow from 210.146.7.192/26
allow from 210.146.60.192/26
allow from 210.151.9.128/26
allow from 210.169.130.112/28
allow from 210.175.1.128/25
allow from 210.228.189.0/24
allow from 211.8.159.128/25

# WILLCOM
# http://www.willcom-inc.com/ja/service/contents_service/club_air_edge/for_phone/ip/
allow from 61.198.142.0/24
allow from 219.108.14.0/24
allow from 61.198.161.0/24
allow from 219.108.0.0/24
allow from 61.198.249.0/24
allow from 219.108.1.0/24
allow from 61.198.250.0/24
allow from 219.108.2.0/24
allow from 61.198.253.0/24
allow from 219.108.3.0/24
allow from 61.198.254.0/24
allow from 219.108.4.0/24
allow from 61.198.255.0/24
allow from 219.108.5.0/24
allow from 61.204.3.0/25
allow from 219.108.6.0/24
allow from 61.204.4.0/24
allow from 221.119.0.0/24
allow from 61.204.6.0/25
allow from 221.119.1.0/24
allow from 125.28.4.0/24
allow from 221.119.2.0/24
allow from 125.28.5.0/24
allow from 221.119.3.0/24
allow from 125.28.6.0/24
allow from 221.119.4.0/24
allow from 125.28.7.0/24
allow from 221.119.5.0/24
allow from 125.28.8.0/24
allow from 221.119.6.0/24
allow from 211.18.235.0/24
allow from 221.119.7.0/24
allow from 211.18.238.0/24
allow from 221.119.8.0/24
allow from 211.18.239.0/24
allow from 221.119.9.0/24
allow from 125.28.11.0/24
allow from 125.28.13.0/24
allow from 125.28.12.0/24
allow from 125.28.14.0/24
allow from 125.28.2.0/24
allow from 125.28.3.0/24
allow from 211.18.232.0/24
allow from 211.18.233.0/24
allow from 211.18.236.0/24
allow from 211.18.237.0/24
allow from 125.28.0.0/24
allow from 125.28.1.0/24
allow from 61.204.0.0/24
allow from 210.168.246.0/24
allow from 210.168.247.0/24
allow from 219.108.7.0/24
allow from 61.204.2.0/24
allow from 61.204.5.0/24
allow from 61.198.129.0/24
allow from 61.198.140.0/24
allow from 61.198.141.0/24
allow from 125.28.15.0/24
allow from 61.198.165.0/24
allow from 61.198.166.0/24
allow from 61.198.168.0/24
allow from 61.198.169.0/24
allow from 61.198.170.0/24
allow from 61.198.248.0/24
allow from 125.28.16.0/24
allow from 125.28.17.0/24
allow from 211.18.234.0/24
allow from 219.108.8.0/24
allow from 219.108.9.0/24
allow from 219.108.10.0/24
allow from 61.198.138.100/32
allow from 61.198.138.101/32
allow from 61.198.138.102/32
allow from 61.198.139.160/28
allow from 61.198.139.128/27
allow from 61.198.138.103/32
allow from 61.198.139.0/29
allow from 219.108.15.0/24
allow from 61.198.130.0/24
allow from 61.198.163.0/24
allow from 61.204.6.128/25
allow from 61.204.7.0/25
allow from 61.204.92.0/24
allow from 61.204.93.0/24
allow from 61.204.94.0/24
allow from 61.204.95.0/24
allow from 61.198.128.0/24
allow from 61.198.131.0/24
allow from 61.198.143.0/24
allow from 61.198.172.0/24
allow from 61.198.173.0/24
allow from 61.198.252.0/24
allow from 61.204.3.128/25
allow from 211.126.192.128/25
allow from 219.108.11.0/24
allow from 219.108.12.0/24
allow from 219.108.13.0/24

# emobile
# http://developer.emnet.ne.jp/ipaddress.html
allow from 117.55.1.224/27

web

今日のチェキ 2008-02-28

2月 28th, 2008

最近の携帯メールアドレスのドメインには「disney.ne.jp」「bandai.jp」も候補に加えなきゃならんらしい

NTT東西、NGNサービスの名称「フレッツ 光ネクスト」と料金案を公表
Next Generation Network – Wikipedia

ニュース

Windows+Apache+SSL+WebDAV

2月 27th, 2008

Cドライブ直下のwebdavフォルダ利用、VPN、localhostからのみSSLにて通信可能。
認証は設けない。
サーバは引き続きApache2.2onSSL。
SSLの利用の仕方は別途(WindowsのApache2.2でSSLを利用する)。

confの設定
conf/httpd.conf

#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so
  ↓
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_lock_module modules/mod_dav_lock.so

#Include conf/extra/httpd-dav.conf
  ↓
Include conf/extra/httpd-dav.conf

こっちは全般的に書き直し
conf/extra/httpd.conf

Alias /webdav "C:/webdav"


    Dav On
    Order Deny,Allow
    Denny from all
    Allow from 5.0.0.0/8 #Hamachi VPN
    Allow from 127.0.0.1
    SSLRequireSSL

Lockファイルがないので作成します。
コマンドプロンプトかファイル名を指定して実行で。

touch C:/Program Files/Apache Software Foundation/Apache2.2/var/DavLock

Apacheの再起動で終わり。

windows

WindowsのApache2.2でSSLを利用する

2月 19th, 2008

RingServer等からopenssl組み込み済みのバイナリを取得する。
今回は「apache_2.2.8-win32-x86-openssl-0.9.8g.msi」

インストーラでデフォルトのままインストール。

コマンドラインから秘密鍵(server.key)、公開鍵(server.csr)、証明書(server.crt)を作成する。

cd C:\Program Files\Apache Software Foundation\Apache2.2\bin
openssl.exe genrsa -out ../conf/server.key 1024
openssl.exe req -new -key ../conf/server.key -out ../conf/server.csr -config ../conf/openssl.cnf
openssl.exe x509 -in server.csr -out ../conf/server.crt -req -signkey ../conf/server.key -days 365

公開鍵作成時にいろいろ質問されます。

httpd.confのコメントアウトをはずす。

#LoadModule ssl_module modules/mod_ssl.so
 ↓
LoadModule ssl_module modules/mod_ssl.so

#Include conf/extra/httpd-ssl.conf
 ↓
Include conf/extra/httpd-ssl.conf

Apache2.2を再起動する。

windows

PHPでメールを送る

2月 18th, 2008

PHPでのメール送信の場合、直接ポート叩いてくれとか言われた。
特殊な環境ではなく偉大なる先人がPHPのmail使えねとレッテルを貼ったようだ。
先人はそもそもmbstring関数まわりの扱いが間違っているんですが。

mb_send_mail
マニュアルにあるとおり、mb_language()の設定に基づき変換されます。
「ja」、「japanese」を指定した場合「内部エンコードからISO-2022-JP」に変換され送信されます。
大体この関数に渡す前にmb_convert_encoding()でISO-2022-JPに変換して文字化け起こしてるケースがほとんど。

mb_encode_mimeheader
第二引数を省略した場合はmb_language()の設定に基づいて変換された上でヘッダ用にBASE64エンコードと文字列追加が行われます。
「ja」、「japanese」を指定した場合「内部エンコードからISO-2022-JP」に変換されます。
結果が長い場合はCRLFで改行されるので(本来はそれが正しいのですが)CRは削除したほうがよさげです。

スクリプトをEUC-JPで書いてるならphp.iniの設定は以下の2つは必須です。

mbstring.language = japanese
mbstring.internal_encoding = eucJP-win

スクリプト内でも関数を用いて上記の値は変更可能なので環境によっては利用前に設定する方向で。

mb_send_mailを利用した場合

$subject = "サブジェクト";
$body = "本文";
$to = "to@example.jp";
$from = "from@example.jp";

mb_language('japanese');
mb_internal_encoding('eucJP-win');

$header = "From: ".$from;
$sendmail_param = "-f".$from;

mb_send_mail($to, $subject, $body, $header, $sendmail_param);

mailを利用した場合

$subject = "サブジェクト";
$body = "本文";
$to = "to@example.jp";
$from = "from@example.jp";

mb_language('japanese');
mb_internal_encoding('eucJP-win');

$subject = str_replace("\r", "", mb_encode_mimeheader($subject));
$body = mb_convert_encoding($body, 'ISO-2022-JP');
$header = "From: ".$from."\n".
          "Mime-Version: 1.0\n".
          "Content-Type: text/plain; charset=ISO-2022-JP\n".
          "Content-Transfer-Encoding: 7bit";
$sendmail_param = "-f".$from;

mail($to, $subject, $body, $header, $sendmail_param);

PEAR::Mail

require_once 'Mail.php';

$subject = "サブジェクト";
$body = "本文";
$to = "to@example.jp";
$from = "from@example.jp";

mb_language('japanese');
mb_internal_encoding('eucJP-win');

$subject = str_replace("\r", "", mb_encode_mimeheader($subject));
$body = mb_convert_encoding($body, 'ISO-2022-JP');
$header = "From: ".$from."\n".
          "Subject: ".$subject."\n".
          "Mime-Version: 1.0\n".
          "Content-Type: text/plain; charset=ISO-2022-JP\n".
          "Content-Transfer-Encoding: 7bit";

$mail =& new Mail::factory("mail");
$mail->send($to, $header, $body);

PEAR::Mailはソースみたけど国際化はもちろん74文字折畳みとかされないので結局自前でエンコードしてからセットとなります。
PEAR::Mailはファイル添付やHTMLメール、デコメールでPEAR::Mail_mimeと合わせて使うのならって感じ。

mb_send_mail超簡単。

一般的ではないエンコード、EUC-JP、UTF-8、絵文字メール(Shift_JIS)、機種依存文字の入ったメール(ISO-2022-JP-MS)で送りたい場合は、独自でヘッダを書いてmail関数で送るといいと思うよ。

mb_encode_mimeheader()の使い方
DoCoMoに絵文字メールを送信する

PHP