nDiki : proxy
Related term
2004年2月9日 (月)
■ AIM 5190 -> 80

ルータの設定の関係で社内からAIMできなくなっていたので proxy かなにかを通そうかと思ったら、何のことはない接続先をポート80にするだけでOKだった。
サーバ側で80でも待ち受けているってことか。 知らなかった。
- Apache でミラー proxy (2002-04-17)
- 風呂からあがったら無線 LAN がつながらなくなった (2004-11-24)
- GRAPH GEAR セミハードタイプ デジタルカメラケース DGB-01... (2005-02-07)
- Linbot の文字化け、とりあえず delegate で対応 (2000-09-08)
- 過去の今ごろ (2004-05-04)
2004年12月8日 (水)
■ mixiの足あとの未読/既読表示

mixiの足あとリストは、未読/既読の判別ができない。 なので踏み返す際に、以前どこまで見たかわからなくなって困る。
- 踏まれた時間をダミーの date query パラメータとして渡してURLが変わるように、HTMLを書き換える。
- 未訪問と訪問済みのA要素が同じ色になるように設定されているので、a:visited の設定をHTMLに追加する。
といったフィルタリングをするようにする。
Privoxy のフィルタに
FILTER: mixi-log add date query to mixi log
s|((\d\d\d\d).+(\d\d).+(\d\d).+(\d\d):(\d\d).+href="show_friend\.pl\?id=\d+?)|$1&date=$2$3$4$5$6|gU
FILTER: mixi-log-color change visited color
s|<body|<style type="text/css">\n<!--\na:visited { color:black }\n-->\n</style>\n<body|
を加える。で http://mixi.jp/show_log.pl リクエストに対して mixi-log と mixi-log-color フィルタが有効になるようにアクションを設定。
これで踏み返したものは黒く表示されるようになる。
- Firefox 拡張機能の整理 (2005-02-05)
- Twitter ステータスを nDiki サイドバーに表示 (2007-11-09)
- 資源有効利用促進法にもとづき、ディスプレイの回収を申し込んだ (2008-02-02)
- Apache Proxy で アンテナの ?%MM%%DD%%HH%%TT... (2001-10-02)
- マイミクシィ最新日記から外部ブログへのリンクが view_diary.pl... (2005-02-24)
2005年8月2日 (火)
■ 例によってPHS接続用に WWWOFFLE を設定

夏休みでしばらく数日(常時接続ではない) PHS 接続生活になるので、例によって WWWOFFLE をインストール。しばらくは WWWOFFLE + Privoxy の2重 proxy 生活。
今回はDNS キャッシュサーバとして pdnsd も入れておく。
あわせて resolvconf パッケージもインストールして、ifup / ifdown の実行などで問い合わせにいく DNS サーバが変わっても pdnsd が追従するように設定(というか pdnsd のデフォルトの pdnsd.conf がそのようになっている)。
これで /etc/resolv.conf はいつも
nameserver 127.0.0.1
にしておけるので 実際に問い合わせにいく DNS サーバが変わっても WWWOFFLE の再起動が必要なくなる。
[ Debian ]
- Tor で hidden service (2005-02-13)
- Apache での PostgreSQL を使った認証 (1999-12-18)
- Apache でミラー proxy (2002-04-17)
- 遅ればせながら Greasemonkey。mixi の未読・既読の色分けなど。 (2005-10-01)
- Web広告に興味を持つ (2000-10-01)
2005年10月15日 (土)
■ POE で HTTP プロキシサーバ

Privoxy などのプロキシサーバを使うと閲覧するWebページの書き換えをすることができるのだが、凝ったことをするとなると無理がある。
以前から興味のあった POE で HTTP プロキシサーバを作ってみることにしよう。 といってもまずは、サンプルを動かしてみるところから。
POE Cookbook の web proxy サンプルを動かしてみる。 なるほど短く書けていいな。
これに Web ページを書き換えるコードを挿入してあげれば、簡単に希望するプロキシサーバの出来上がり。 Greasemonkey も悪くないけれど、ローカルのデータとかを利用してページを書き換えたい時はこっちの方が楽であろう。 それに Perl だし。
- Twitter ベイジアンフィルタプロキシ (2007-12-29)
- Tor で hidden service (2005-02-13)
- Perl CGI プログラムのテストには WWW::Mechanize::... (2006-02-18)
- 遅ればせながら Greasemonkey。mixi の未読・既読の色分けなど。 (2005-10-01)
- HTTP/1.0 Simple-Response (2004-06-01)
2006年6月3日 (土)
■ FoxyProxy と autossh で社内 Web ページを閲覧

メンテナンス等のため社内 Web サイトを社外から閲覧する必要がある場合 SSSH の port forwarding を使ってアクセスしていたのだが、その都度 Firefox の proxy を変更したりするのが面倒だった。
そんな折 FoxyProxy という Firefox 拡張機能があることを知った。 これは登録された URL パターン毎に、自動的に proxy を切り替えてくれるという優れもの。 これは便利。
autossh で port forwarding (SOCKS サーバ)を開いておくようにして、社内のホスト名/IP アドレスのURLの時はそこを経由するようにしておくと、いつでも Firefox から閲覧できるようになる。
autossh -N -f -D8090 <中継するホスト名>
- connect.c を使って SOCKS サーバ経由で社内サーバへ SSH 接続 (2007-01-06)
- Tor で hidden service (2005-02-13)
- Hyper Estraier で社内 Web コンテンツ検索 (2006-06-01)
- Web広告に興味を持つ (2000-10-01)
- Debian に RSS リーダ「フレッシュリーダー」をインストール (2006-03-06)
2007年1月6日 (土)
■ connect.c を使って SOCKS サーバ経由で社内サーバへ SSH 接続

以前社外から社内 Web サイトへのアクセスは autossh + FoxyProxy を使って SOCKS 経由で直接できるように設定した (記事)。 また Unison や Subversion もそれぞれ SSH port forwarding 経由で直接アクセスできるようにしてある (Unison の記事、Subversion の記事)。
しかし社外から社内サーバへの SSH 接続(やファイル転送)は、以前として一旦中継ホストに接続(転送)してから再度接続(転送)していて面倒であった。
調べたところ Shun-ichi GOTO氏の SSH プロキシコマンド connect.c を使うと SOCKS サーバ経由で直接接続できるようなので設定してみた。
[クライアント:8090] -- SOCKS -- [ゲートウェイ] -- [社内サーバ]
gw.example.com 192.168.1.x
@ インストール
Debian なので apt-get で。
apt-get install connect-proxy
@ SSH の設定
~/.ssh/config に以下の行を追加。
Host 192.168.1.* ProxyCommand /usr/bin/connect-proxy -S localhost:8090 %h %p
192.168.1.* に接続する際は、connect-proxy を使ってローカルホストの 8090 ポートの SOCKS を通るようにする設定。
@ SSH を SOCKS サーバにする
autossh を使って SSH で SOCKS サーバを立てる
autossh -N -f -D8090 gw.example.com
これで準備 OK。
@ 使ってみる
@ SSH 接続
ssh 192.168.1.x
で接続を確認。
@ Konqueror (KDE)
fish://192.168.1.x/
で直接ブラウズ、読み書き可能なことを確認。
@ Unison
普通に 192.168.1.x と同期できることを確認。
@ CVS
普通に 192.168.1.x 上のリポジトリに対して cvs update できることを確認
@ Subversion
普通に 192.168.1.x 上のリポジトリに対して svn update をかけるとアップデートし終わって最後に
FATAL: output (local) failed, errno=32
というエラーがでる。
@ 便利
Subversion だけちょっと気がかりだれど、その他はうまく行っている感じ。
これでかなり手軽に接続、転送できるようになった。 便利、便利。
- FoxyProxy と autossh で社内 Web ページを閲覧 (2006-06-03)
- Subversion で SSH port forwarding 経由での... (2006-06-29)
- OpenSSH for Windows (2004-08-05)
- Module::Build でソースパッケージング (2005-08-24)
- vc-svn.el を使いたいので Emacs 22 に移行することにした (2006-03-25)
2007年12月29日 (土)
■ Twitter ベイジアンフィルタプロキシ

Twitter で following が増えてくるにつれて、タイムラインに目を通すのが大変になってきた(という程きちんと見ている訳ではないが)。 さっとタイムラインをなめて面白そうな情報をピックアップしたい時は、「おはよう」とか「風呂入った」とか「トイレ」とかは除外して読みたい(そういう書き込み自体は嫌いじゃないのだが、人生はあまりにも短い)。
Twit や P3:PeraPeraPrv では NG ワード指定ができて、それらを含むステータスは表示しないようにできるのだが、Twitter の書き込みは揺らぎが激しすぎて指定しきれないという弱点がる。
ということでベイジアンフィルタでフィルタリングしてみることにした。
自前で Twitter クライアントを作る気はないので、proxy の形でさっと実装してみた。
#!/usr/bin/perl
use strict;
use warnings;
use HTTP::Proxy;
use HTTP::Proxy::BodyFilter::complete;
my $proxy = HTTP::Proxy->new(port => 8088);
$proxy->push_filter(response => HTTP::Proxy::BodyFilter::complete->new,
mime => 'application/xml');
$proxy->push_filter(response => Bsfilter->new,
mime => 'application/xml');
$proxy->start;
{
package Bsfilter;
use File::Temp qw/tempfile/;
use XML::XPath;
use base qw(HTTP::Proxy::BodyFilter);
sub filter {
my ($self, $dataref, $message, $protocol, $buffer) = @_;
return unless defined($$dataref) && $$dataref ne '';
eval {
my $xml = XML::XPath->new(xml => $$dataref);
my @nodes = $xml->findnodes('/statuses/status/text/text()');
return unless @nodes;
for my $node (@nodes) {
my $text = $node->getNodeValue;
if (is_NG($text)) {
$node->setNodeValue("[NG] $text");
}
}
$$dataref = qq(<?xml version="1.0" encoding="UTF-8"?>\n);
$$dataref .= $xml->get_context->toString;
utf8::encode($$dataref);
};
if ($@) {
warn $@;
}
}
sub will_modify { 1 }
sub is_NG {
my ($text) = @_;
my ($fh, $filename) = tempfile();
utf8::encode($text);
print $fh $text;
close($fh);
my $result
= system(
"bsfilter --homedir ~/.twitter-bsfilter --ignore-header --auto-update $filename"
);
unlink($filename);
return !$result;
}
}
@ HTTP proxy の作成
Perl で HTTP proxy を作ろうとして真っ先に思い浮かんだのは POE だけれど、ちょっとヘビーなので今回は HTTP::Proxy をチョイス。 もともとフィルタリング HTTP proxy を作ることを念頭に置いた Perl モジュールなので今回の目的にぴったり。
1つはまった点といえば、filter の呼び出しがレスポンス全てを取得してからではなく一部分ずつの呼び出しになるところ。その仕様に気がつくのにちょっと時間がかかってしまった。 例えば XML 形式のレスポンスをフィルタしようとしても、普通に HTTP::Proxy を使うと XML の一部ずつがフィルタに渡されるため、XML のパースがうまくいかない。
これについては HTTP::Proxy::BodyFilter::complete を使うことで、まとめてフィルタに渡せるようになった。
@ レスポンスの処理
Twitter のタイムライン取得については P3:PeraPeraPrv が XML 形式で取得しているので、そのタイプのレスポンスをフィルタするようにした。
XML::XPath でステータス部分を抜き出して NG 判定し、NG であれば先頭に [NG] を追加する。 これで Twitter クライアント側で [NG] を NG ワード指定すれば、表示されないようにすることができる。
@ bsfilter による NG 判定
NG 判定は普段メールの spam フィルタとして使っている bsfilter を使った。 単純に system 関数で呼び出して結果を取得するだけ。
今回は対象がメールではないので --ignore-header を指定。また自動的に学習するように --auto-update を指定。 それと普段メールのフィルタリングに使っているのとは bsfilter のデータベースを別にしたいので、--homedir も指定しておく。
@ NG と非 NG の学習。
NG ワードを twitter-NG.txt に、非 NG ワードを twitter-clean.txt に書いて以下のコマンドを実行。
bsfilter --add-clean --ignore-header --homedir ~/.twitter-bsfilter twitter-clean.txt bsfilter --add-spam --ignore-header --homedir ~/.twitter-bsfilter twitter-NG.txt bsfilter --update --homedir ~/.twitter-bsfilter
自分の環境 (Debian GNU/Linux sid)では、UTF-8 で書いておいて問題なかった。
@ フィルタリングしてみる
あとは先の proxy を起動し、P3:PeraPeraPrv でプロキシとして localhost:8088 を指定すれば OK。
タイムラインを取得するたびに bsfilter が動いて NG なステータスには [NG] が挿入される。
@ フィルタリングの精度
これについては、まだまだチューンの必要ありかな。
- 事前の学習データが少ない。
- --auto-update していることもあり、最初に NG 判定が多いとそちら側に強化されすぎる。
- 毎回 bsfilter を呼んでいるため、同じステータスが何度も学習される。
まだ使える精度まで上がってないけれど、教師データを増やせばそれなりにいけるかもしれない。
proxy の枠組ができたので、(@~は抜いてから bsfilter に渡すとか、前後の文脈も含めるとか)いろいろ試して遊べそうではある。 別に bsfilter にこだわらず、正規表現による判定などをしてもよいし。
この辺り P3 は Java で書かれているので、プラグインを書いて拡張できるよう将来になると面白いなと思ってみたり。
- ColdSync (2004-05-05)
- MAILPIA による Twitter リプライチェック (2008-11-18)
- POE で HTTP プロキシサーバ (2005-10-15)
- 今日のさえずり - サーバ止めた。この静寂がたまらない。 (2008-11-16)
- PAR (2004-07-19)
2008年1月6日 (日)
■ 今日のさえずり - バスクリンに「マジッ」をたすとバスマジックリン

- 10:32 親戚から 050 で電話がかかってきた。
- 12:54 PC 触っているときりがない。
- 14:29 毎日曜日は基本ノー PC デーにしようかな。今日はもう結構使ったけれど。[mb]
- 16:04 年賀状投函。ポストがもう年賀状モード解除されてる。[mb]
- 16:55 今日のサウンドロップ クレヨンしんちゃん「いや~それほどでもぉ」[mb]
- 18:09 バスクリンに「マジッ」をたすとバスマジックリンになることに気づいた。[mb]
- 18:22 Amazon.co.jp 使ったギフトが初めてウチにきた。[mb]
- 18:34 まりもの水交換した。[mb]
- 23:59 Google proxy 経由でiモードから拙作 WikiEngine に書き込めた。[mb]
- ケータイ用にプライベート Wiki を設置 (2008-01-07)
- 今日のさえずり - 金メダルのネックストラップには、ケータイ用のヒモが付い... (2008-08-24)
- メールボックスを Gmail に集約 (2007-08-08)
- 今日のさえずり - 鳩三郎が会社にきた (2008-09-25)
- 今日のさえずり - 開き括弧がいわゆる全角文字で閉じ括弧が半角文字になる人多すぎ (2008-08-25)
2008年1月7日 (月)
■ ケータイ用にプライベート Wiki を設置

パケ・ホーダイを契約してから、MovaTwitter・RTM・モバイル Gmail などで携帯電話を活用するようになった。そんななか、決定打がないのが、ノートアプリケーション。電車の中などの隙間時間に、この nDiki の 下書きなどはケータイでできるようにしたい。
Google ドキュメントが使えればいいが、前年ながらまだiモードでは使えない。 メールベースでやる手もあるが、メモには良いものの再編集を繰り返したいようなものに難がある。
ということで自前でプライベート Wiki を立てそこに書き込んでみることにした。
@ iモードから WiKicker
使う WikiEngine はいつも通り自作の WiKicker。
書き込んだテキスト内のキーワードを nDiki へ自動リンクさせることができるので、パーソナルナレッジベースとして自分にとっては一番便利。書式も同じなので、Wiki に書いた下書きを、そのまま nDiki で使える。
肝心のケータイからの書き込みだが Ajax 等凝った技術を使っていないおかげで、問題なく FOMA 端末(D703i)からiモードで読み書きできた。WiKicker は UTF-8 でページを出力しているが、網側か端末側の処理かは知らないが今のところ問題なし。
なお認証は簡単に Basic 認証で済ますことにした。 安全とは言えないがそれほど重要なデータを置くわけではないしいいかな。 cookie は必要ないし WikiEngine に手を入れなくてもよいので、すぐできるのはコレ。
ユーザ名とパスワード付きのトップページ URL を端末でブックマークしておけば1発でアクセスできる。
@ Google Mobile Proxy 経由で使う
これでケータイ(と PC)から使えるプライベート Wiki を設置できたわけだが、なにぶんもともとケータイをサポートしている WikiEngine ではないため、長いページの分割機能などはないのがちょっと不安。PageName で生成される URL が長くなった時の振る舞いもちょっと不安。
そこで Google Mobile Proxy (http://www.google.co.jp/gwt/n) 経由で Wiki を使うことにした。 ページを携帯端末向けに変換してくれる proxy で、Basic 認証もできるしフォーム の POST もできる。
Google Mobile Proxy 経由で見たページ内のリンク先も全て自動的に proxy 経由になるので、 PC 向け Web ページの URL を書いておけばそのまま携帯電話で見ることができる。
安全のためか、比較的短い一定時間立つと認証の再確認画面が表示されてしまうが、ユーザ名とパスワードを入力すれば、セッションは継続される。 テキスト編集に時間がかかってしまうと POST する時にひっかかってしまい認証の再入力がちょっと面倒だが、再認証が通れば POST リクエスト自体は有効で書き込みがロストすることはないようだ。
しばらくはこれで読み書きしてみよう。
- 半分は Twitter のためにパケ・ホーダイを契約 (2007-08-01)
- ビジネス用電話番号をマルチナンバーで追加した (2007-09-20)
- さよなら PHS (2007-02-10)
- SO905iCS ファーストインプレッション (2008-02-16)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
2008年2月12日 (火)
■ 今日のさえずり - 「エビちゃん」マックカード当たった

@ 2008年02月09日
@ 2008年02月10日
- 09:39 地震。初期微動が強かった? L:品川区
- 19:19 夕食はきのこクリームえびフィレオ。スクラッチゲームカードで特製「エビちゃん」マックカード当たった。[mb]
- 21:01 Biz.ID の #053 ラッキーシート書いて冷蔵庫に貼った。自己評価がアップした。http://www.itmedia.co.jp/...
@ 2008年02月11日
- 12:35 tonotono.net の proxy は DoCoMo/2.0 P900i(c100;TB;W24H11) でアクセスしてくるな。アクセス元は 普通の ISP 接続っぽい。
- 16:31 今日も地震。L:品川区
@ 2008年02月12日
- 今日のさえずり - アイスも冷凍食品も全滅っぽい (2008-01-04)
- ホワイトボードも A3 ならコピー機でコピー可能 (2005-12-21)
- 今日のさえずり - 「じゅうふく(重複)」はやはり気持ち悪い (2008-03-21)
- 今日のさえずり - 子供がブランコから抜けなくなってる (2008-03-31)
- 今日のさえずり - 紳士服屋の完全閉店は信用ならない (2008-06-14)
スポンサード リンク
■よく検索されるキーワード
perl(62) torrent(54) linux(48) 提案書(47) windows(43) 書き方(41) 使い方(29) アジェンダ(26) x31(25) 充電式カイロ(25) cvs(22) インストール(20) サンプル(20) thinkpad(19) アジェンダとは(19) f-01a(18) wiki(17) c#(16) 感想(16) カイロ(16) usb(16) java(16) 秋葉原(15) debian(15) ヨドバシカメラ(15) subversion(15) 壁紙(15) 作り方(15) 静電気(14) apache(14) グッズ(14) デロンギ(13) フリー(13) sh-01a(13) ganttproject(13) 修理(13) ssh(12) svn(12) ヨドバシ(12) truecrypt(12) ダイソー(11) 手帳(11) activeperl(11) ubuntu(11) ほぼ日手帳(11) firefox(10) mew(10) mp980(10) ドラマ(10) 日本語(10) n-01a(10) google(10) tc-1(10) 評判(10) ツール(10) djunit(9) cgi(9) 動画(9) mp3(9) オイルヒーター(9) docomo(9) rcs(9) 除去(9) centos(9) メモリ(9) エネループ(9) 設定(9) p-01a(9) tortoisesvn(9) 無印(8) ケース(8) 口コミ(8) ミノルタ(8) メール(8) インストーラ(8) 会議(8) xampp(8) 加湿器(8) af(7) 値段(7)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 15.119975s / load averages: 0.29, 0.37, 0.33
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク