PHPでSOAPクライアント
CentOS5.5でやってみました。
phpのインストール
# yum install --enablerepo=webtatic php php-soap
# rpm -qa | grep php php-common-5.3.10-1.w5 php-5.3.10-1.w5 php-cli-5.3.10-1.w5 php-soap-5.3.10-1.w5
ネタ
ネタは、Google Apps Scriptのドキュメント内で、サンプルとされていたGEOサービスを利用します。
しかしながらGAS、良くできております。
Tutorial: Accessing a Soap Service - Google Apps Script ? Google Developers
function determineCountryFromIP(ipAddress) { var wsdl = SoapService.wsdl("http://www.webservicex.net/geoipservice.asmx?wsdl"); var geoService = wsdl.getGeoIPService(); var param = Xml.element("GetGeoIP", [ Xml.attribute("xmlns", "http://www.webservicex.net/"), Xml.element("IPAddress", [ ipAddress ]) ]); var result = geoService.GetGeoIP(param); return result.Envelope.Body.GetGeoIPResponse.GetGeoIPResult.CountryCode.Text; }
PHPで同じものを書いてみる
こんな感じになりました。
<?php /*-- geo.php --*/ function determineCountryFromIP($ipAddress) { try { $client = new SoapClient("http://www.webservicex.net/geoipservice.asmx?wsdl", array('cache_wsdl' => WSDL_CACHE_NONE, 'trace' => 1, 'exceptions' => true ) ); /* foreach ($client->__getFunctions() as $func) { print "$func \n"; } */ $params = array( "IPAddress" => "$ipAddress" ); $res = $client->GetGeoIP($params); var_dump($res); } catch (SoapFault $soapFault) { echo $soapFault->getCode().":".$soapFault->getMessage(); } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; } } determineCountryFromIP('124.83.187.140');
実行結果
# php -f geo.php object(stdClass)#2 (1) { ["GetGeoIPResult"]=> object(stdClass)#3 (5) { ["ReturnCode"]=> int(1) ["IP"]=> string(14) "124.83.187.140" ["ReturnCodeDetails"]=> string(7) "Success" ["CountryName"]=> string(5) "Japan" ["CountryCode"]=> string(3) "JPN" } }
SOAPのメッセージをトレースするには
プロキシを介するようにして、そこで覗いた方が良さそうです。
私の場合はPCでBurp Suite(プロキシするソフト)を起動します。
SoapClientのコンストラクタに、プロキシ情報(例では192.168.100.111:8080)を渡します。
<?php $client = new SoapClient("http://www.webservicex.net/geoipservice.asmx?wsdl", array('cache_wsdl' => WSDL_CACHE_NONE, 'trace' => 1, 'exceptions' => true, 'proxy_host' => '192.168.100.111', 'proxy_port' => 8080 ) );
こうして実行すると、Burp Suite側でリクエストとレスポンスのメッセージを見ることができます。
CentOSに最新のPHPをインストールする
CentOS向けのphpパッケージ、結構古かったり、拡張モジュールのrpmパッケージが無かったりしてハマってしまいました。
調べたところ、webtaticというサイトで配布しているようです。
PHP 5.3 on CentOS/RHEL 5.6 | Webtatic.com
# rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm # yum --enablerepo=webtatic install php
これでPHP5.3系の環境を簡単に作ることができます。
全角カナから半角カナへの変換
韓国出張レポ
忙しくってだいぶ日が経ってしまったのですが、今月上旬の韓国出張レポートを。
Wibro Egg(ワイブロエッグ)
最近は通信手段の確保に、Wibro Egg(ワイブロエッグ)というのをインチョン空港でレンタルするようにしています。
お値段は1日8000ウォン(600円くらい)。日本でいうWiMax端末です。
同時に3台までのPC・スマホが使えるので、同行者も一緒に使えちゃいます。
肝心のエリアなんですが、ソウル市内はほぼ完璧。日本のように地下がイマイチ..とかありません。
ホテルのWifiなんかよりも高速なので、これはオススメのアイテムです。
美味しいワイン漬けのサムギョプサル
この日は韓国で55年ぶりの寒さを記録したらしく、さらに日も暮れた時間だったので、逆に笑ってしまうくらいの寒さでした。
初日は同僚の案内で、「真真」という人気の焼肉屋さんへ。
店内には芸能人のサイン色紙がこれでもかというくらい飾られており、お肉は期待以上の旨さ。
どこのお店でもそうですが、お店の方が焼いてくれ、食べやすい大きさに切ってくれるのが嬉しいです。
サービスでキムチのチヂミも頂きました。
帰り道でのカフェでチョコレートドリンクを。移動の疲れを癒します。
OM N TOMS COFFEEは初入店です。
韓国は本当にカフェが多くて、しかもどの店もお洒落です。
いつも楽しませてもらっています。
とにかく食べる
軽食屋で朝ごはんなのですが、普通に韓国料理が楽しめます。
というわけで、朝からビビンバをチョイス。お昼ごはん食べれそうにありません。
といいながらも、ランチにご招待して頂き、ここでふぐとキムチの鍋を頂きました。
煮こまれたフグが入っているのですが、これを取り出して、わさび醤油またはコチュジャンをつけて食べるのだとか、、
でもその食べ方はイマイチ合わなかったので、やめておきましたw
夜はウギョプサルという牛肉の焼肉をご馳走に。
私がお肉好きという事を、しっかりとご理解頂いているので(笑)、いつも美味しいお肉をご馳走になっています。
写真には無いのですが、「ヒムチュル」という、コリコリの変わったお肉も印象的でした。
お次は先方の女性スタッフにチョイスしてもらったお店にて。
最近、チヂミの美味しさが分かってきたので、マッコリと共にしっかり堪能してきました。
今度は一軒目から来たいお店。
大好物の参鶏湯(サムゲタン)
テジュンの住宅街を横目に眺めつつ、
参鶏湯のお店へ。「韓国料理で何が一番好きですか?」と聞かれれば、必ずこれをいいます。
でも、韓国の人はそう頻繁には食べないみたいですね。私は毎日のように食べたいのに(笑))
鶏肉がすごく柔らかくて、ボリューム満点。美味しかった。
震災からもうすぐで11ヶ月
今年の冬は昨年以上に寒いです@仙台。
河北新報 東北のニュース/仮設住宅で水道管凍結続出 宮城県、緊急工事実施
1/31 気象庁によると、北日本の上空に氷点下42度以下の寒気が流れ込んでいる状況。
仮設住宅に住んでいる方には、本当に厳しい冬です。
寒気が北日本に流れ込んだ影響で厳しい冷え込みが続き、東日本大震災の被災地では、応急仮設住宅で水道管の凍結が相次いでいる。宮城県は今週後半にも、県が発注した全2万1572戸を対象に凍結防止のための緊急工事を始める。
河北新報 東北のニュース/宮城県、放射能被害対策の基本方針を決定
1/31、福島第1原発事故対策本部会議の第2回会合
基本方針は除染の徹底を最優先事項に掲げ「今後5年以内に、追加被ばく線量を年間1ミリシーベルト以下にする」との目標を設定した。国から「汚染状況重点調査地域」に指定された県内8市町を中心に、対策を進めることを申し合わせた。
村井嘉浩知事は「県民の力を結集し、一歩ずつ進みながら安全な県土をつくりたい」と話した。
「汚染状況重点調査地域」は環境省から発表されています。
環境省 報道発表資料−平成23年12月19日−放射性物質汚染対処特措法に基づく汚染廃棄物対策地域、除染特別地域及び汚染状況重点調査地域の指定について(お知らせ)
宮城県の8市町は以下の通りで、放射線量が1時間当たり0.23マイクロシーベルト以上の地域を対象としているようです。