Hatena::Groupmobilehacker

ミンナニハナイショダヨ RSSフィード

2009-03-11

[] サブスクライバ ID と端末 ID についてのメモ 11:22  サブスクライバ ID と端末 ID についてのメモ - ミンナニハナイショダヨ を含むブックマーク はてなブックマーク -  サブスクライバ ID と端末 ID についてのメモ - ミンナニハナイショダヨ

DoCoMo

a要素やform要素で遷移する際に utn 属性がついていると、UserAgent経由で端末IDが取得出来る。

また guid=ON がついてると X-DCMGUID にてサブスクライバIDが取得出来る。

au

EZ番号と言う呼称でサブスクライバIDを送出している。HTTP Request Header で、HTTP_X_UP_SUBNO で取得出来る。

Softbank

x-jphone-uid フィールドでサブスクライバ ID が取得出来る。

また x-s-unique-id で端末 ID を取得出来る。

x-jphone-msname で機種名称が取得可能。

2009-02-05

[][] UserAgent of DoCoMoWeb::Scraper でスクレイピング 12:29  UserAgent of DoCoMo を Web::Scraper でスクレイピング - ミンナニハナイショダヨ を含むブックマーク はてなブックマーク -  UserAgent of DoCoMo を Web::Scraper でスクレイピング - ミンナニハナイショダヨ

d:id:tokuhiromWWW::MobileCarrierJP があるけど自分でも試しに書いてみたよ。

#!/usr/bin/perl

use utf8;
use strict;
use warnings;
use URI;
use YAML;
use Data::Dumper;
use Perl6::Say;
use Web::Scraper;

my $u = URI->new('http://www.nttdocomo.co.jp/service/imode/make/content/spec/useragent/index.html');

my $s = scraper {
    process '//table[@summary]', 'versions[]' => scraper {
        process '//self::table', 'version' => sub {
            $_->attr('summary') =~ m|(HTML\d\.\d)|;
            return $1;
        };

        my $version = result 'version';
        my $series;

        process '//tr/td[not(contains(@class, "brownLight"))]/parent::tr', 'models[]' => scraper {
            process '//td[position()=1 and contains(@class, "acenter")]', 'series' => 'TEXT';
            $series = (result 'series') ? result 'series' : $series;
            process '//td[not(contains(@class, "acenter"))]/span', 'rows[]' => sub {
                $_->content_array_ref->[0];
            };

            my $rows = result 'rows';

            my $model = shift @$rows;
            $model =~ s/\s*.*?\s*//;
            my $ua = [ map { (m{(DoCoMo/1.0/\w+(?:/c\d+(?:/(?:TB|TD|TJ)))?|DoCoMo/2.0 \w+\(.*?\))}g); } grep { $_ } @$rows ];

            return +{
                series => $series,
                model => $model,
                ua => $ua,
            };
        };

        return +{
            version => $version,
            models => result 'models',
        };
    };
    result 'versions';
};

my $res = $s->scrape($u);
say Dump($res);

ここに至るまで結構、試行錯誤だった件。Web::Scraper 凄いすなー。

2009-01-30

[] i-mode のスペック表 (pdf) が CAM::PDF で読めない件 10:49  i-mode のスペック表 (pdf) が CAM::PDF で読めない件 - ミンナニハナイショダヨ を含むブックマーク はてなブックマーク -  i-mode のスペック表 (pdf) が CAM::PDF で読めない件 - ミンナニハナイショダヨ

#!/usr/bin/perl

use strict;
use warnings;

use Carp::Clan;
use CAM::PDF;
use LWP::UserAgent;
use Perl6::Say;
use Data::Dump qw(dump);

my $ua = LWP::UserAgent->new;
my $res = $ua->get("http://www.nttdocomo.co.jp/binary/pdf/service/imode/make/content/spec/imode_spec.pdf");

if ($res->is_success) {
    my $pdf = CAM::PDF->new($res->content);

    if ($CAM::PDF::errstr) {
        croak($CAM::PDF::errstr);
    }

    for my $p (1 .. $pdf->numPages) {
        say dump($pdf->getPageText($p));
    }
}

を実行すると、

Carp::Clan::__ANON__(): Incorrect password(s).  The document cannot be decrypted.

となる也。

nihennihen2009/01/30 16:56ご存じかもしれませんが
http://www31.ocn.ne.jp/~h_ishida/xdoc2txt.html
をcryptlib付きで、-nオプションを付与してあげるとテキスト化はできるようになります。

ZIGOROuZIGOROu2009/01/31 11:48な、なんと!!!存じ上げませんでした。
これってグレーだったりしませんか?

nihennihen2009/01/31 23:22どーなんでしょう。
不正アクセス禁止法にはひっかからないとは思うのですが…。
それにしても、xdoc2txtが空パスのPDFをdecryptできてCAM::PDFができないのはなんでなんだろう。
xdoc2txtがOpensorceじゃないのでいまいち追う気にはならない・・・。

CammieCammie2011/12/23 22:18Such a deep anwser! GD&RVVF

wuxvncfdzawuxvncfdza2011/12/25 19:25q8ho78 <a href="http://tokefgbefhqp.com/">tokefgbefhqp</a>

yetuymueyetuymue2011/12/25 23:34gqht3x , [url=http://cpbzkuebzgrg.com/]cpbzkuebzgrg[/url], [link=http://oluydtidykxj.com/]oluydtidykxj[/link], http://xgpfozkzityw.com/

2007-07-20もうね

とりあえず 17:57  とりあえず - ミンナニハナイショダヨ を含むブックマーク はてなブックマーク -  とりあえず - ミンナニハナイショダヨ

登録したお!