PHP5の環境においてfgetcsvの処理後のカラムが文字化けする

fgetcsv関数はVer.4→5の間で仕様変更があり、ロケール設定を考慮するようになったので、場合によっては文字化けしたり、\””に囲まれた改行を正しく処理できなかったりする。その場合には、

setlocale(LC_ALL, ‘ja_JP.eucJP’);

をコードに埋め込むか、もしくは、/language/japanese/global.phpに記述すると良い。

iptables

ファイヤーウォールを初期化して保存する方法について
iptables -L #ファイヤーウォールの設定状況を確認する
iptables -F #ファイヤーウォールの設定を初期化する
iptables -A RH-INPUT-CHAIN -p tcp –dport 80 -mstate –state NEW -j ACCEPT #80番ポートの受け入れを許可(厳密にはSYNパケットを許可)
#外部DNSを参照できなくする(こんなことはほとんどすることはないが。。。)
iptables -A OUTPUT -p tcp –dport 53 -j REJECT
iptables -A OUTPUT -p udp –dport 53 -j REJECT
#外部にメールが飛んでいかないようにする
iptables -A OUTPUT -p tcp –dport 25 -j REJECT
/etc/init.d/iptables save #ファイヤーウォールの設定を保存する(これを実行しないと(iptablesを)再起動すると元に戻ってしまう)

usキーをjp106へ変更する方法

/etc/sysconfig/keyboard で

KEYBOARDTYPE=”pc”
KEYTABLE=”jp106″

に変更するとjp106に変更できる。(/etc/sysconfig/keyboard が存在しないこともあるのでその場合には作成する)

TIMTOWTDI

perlの良い点でもあり、悪い点でもあるところを表現した言葉に「There is more than one way to do it.」というのがあります。
これは、「正解は一つではない」「もっと別のやり方もある」「他にもやりかたはあります」「一つの方法だけじゃない」を示していて、飽くなき探究心を持ったPerlプログラマーへの訓示でもあるようです。

ネットワーク検定

今、日経BP社でネットワーク検定をやっています。もしよければ参加してみてください。
勉強になったのは、NetBIOS系のトラブルシュートはNBTSTATコマンドを利用できるということ。OUIを調べるには、IEEEを参照すればよいことでした。

phpにおけるマルチバイトマッチング

Perlでマルチバイトマッチングを行うためには、jcode.plで $a =~ /[亜-煕]/ のようにするとマッチングできる。また、Perl 5.6からはUTF-8にてマッチングが可能だ。
PHPでもmb_eregという関数が用意されており、こちらでマッチングできるのだが、perg_match関数のようなPerl互換の強力な正規表現は用意されていない。
すべての漢字を取り出す正規表現としてコードが公開されているが、もうすこし効率の良いマッチングがPHPでもできれば柔軟な正規表現をかけるのだが。
ところで、HotPHPPER Feedには結構面白いブログのフィードが投稿されているようなので、今後はチェックしていきたい。

mb_send_mail関数がFALSEを返す

mb_send_mail関数がFALSEを返すという症状に遭遇した。error_reporting(E_ALL);に設定してもエラーメッセージは一切出力されないので、問題解決に苦労した。
/var/log/maillogには何も出力されていなかったので、おそらくPHPがSMTPサーバーにメールを渡せていないのだろうと考え、Googleで調べてみたところ際コンパイルしてみたほうが良いとのことで、際コンパイルをしてみたらうまくいった。
おそらくコンパイル時に/usr/sbin/sendmailを認識できないとmail関数は利用できないということのようだ(まぁ、あたりまえか)。
それにしても、エラーが出ないとトラブルシューティングしにくいですね。

Movable Type + Google Sitemap

Moveble TypeをGoogle Sitemapに登録させるためのテンプレートの作成方法がTOTAL WEB紹介されていた。
以下をインデックステンプレートに登録し、出力ファイル名でつけた名前で呼び出せばよい。

<?xml version=”1.0″ encoding=”UTF-8″?>
<urlset xmlns=”http://www.google.com/schemas/sitemap/0.84″>
<url>
<loc><$MTBlogURL encode_xml=”1″$></loc>
<priority>1.0</priority>
</url>
<MTCategories>
<url>
<loc><$MTCategoryArchiveLink encode_xml=”1″$></loc>
</url>
</MTCategories>
<MTEntries lastn=”9999″>
<url>
<loc><$MTEntryPermalink encode_xml=”1″$></loc>
<lastmod><$MTEntryModifiedDate utc=”1″ format=”%Y-%m-%dT%H:%M:%SZ”$></lastmod>
</url>
</MTEntries>
</urlset>

ちなみにこのブログのインデックスは http://blog.development-network.net/ung/sitemap.xml である。

“Movable Type + Google Sitemap” の続きを読む

様々な攻撃手法

ブルート・フォース攻撃 総当り攻撃。効率が最も悪い。
Dos攻撃 特定のホストまたはネットワークへのネットワーク負荷を多くすることで、事実上サービス停止にする攻撃。