11月 16

Name: fedoran
Age:22才
性別:男
趣味:PCライフ、LEGO
職業:大学4年生
PC暦:9年
資格:英検2級 IC3 .com Master☆2008 CCENT
習得した言語 HTML CSS JavaScript Perl/CGI PHP C言語 C++ Java Qt4 SQL Ajax (VB/VBA AS2)
最近やっていること:IT派遣

-History-
2010: 社会人1年生: HoneypotVizをGPLで公開
2009:大学4年生 マルウェア研究 CCENT取得 内定先決定 G5を大学からもらう
2008:大学3年生 ボット研究 Web攻撃を学ぶ コンビニバイトからIT派遣に
2007:大学2年生 MacBook購入 OpenGL独学 Javaを再度独学 オーストラリアに独学
2006:大学1年生 Javaを独学 このブログを自作
2005:高校3年生 高校でパソコン部の部長を務める 文化祭で映画を作る。 IC3の資格習得
2004:高校2年生 PHPを独学
2003:高校1年生 Linux(RedHat9)をインストール サーバ環境構築
2002:中学3年生 CGIによる暗記プログラムを作成
2001:中学2年生 RPGツクールにて自作戦闘システム作成
JavaScriptとCGIを使ったゲーム製作
2000:中学1年生 Perl独学
1999:小学6年生 初めてホームページをジオで作成(FrontPage) HTML JavaScript独学
1995:小学4年生 我が家にインターネット環境が整う

作業風景
PC Family

Tagged with:
9月 22

最近Twitterを始めました。

利用目的は2つあって、一つはMixiのように利用する
http://twitter.com/fedoran
とVPNの更新向けに
http://twitter.com/fedoranet
を用意しました。

で、偶然Net::Twitterを見つけたので、
POSTまたはGETしたデータを垂れ流しするスプリクトを作り、

#!/usr/bin/perl
use Net::Twitter;
use Jcode;

# 環境変数取得
if ($ENV{'REQUEST_METHOD'} eq "POST"){
	read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
} else {
	$query = $ENV{'QUERY_STRING'};
}

# デコード
@args = split(/&/, $query);
foreach $i (@args) {
	($name, $val) = split(/=/, $i);
	$val =~ tr/+/ /;
	$val =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack('C', hex($1))/eg;
	$cgi{$name} = $val;
}

$user = $cgi{'user'};
$pass = '*******';
$msg = Jcode::convert($cgi{'message'}, 'utf8');
my $tw = Net::Twitter -> new (username => $user, password => $pass);
$tw->update($msg);
print "Content-type: text/html<html><body>";
print "message:".$msg."";
print "</body></html>";

サーバ側の準備完了。
で、今度はクライアントサイドで、
Qtを使って、Twitter Message Senderをガリガリ。。。。
で、今完成

とりあえず、更新関係はこれで書き込みます

Tagged with:
6月 14

こんばんは fedoraxです。

今日は暑かったですね。皆さんはいかがおすごしでしたか?

おいらは、昨日のまでのカンファレンスの疲れのせいで、
眼鏡をかけたまま、PCつけっぱでねてました。

あさおきたら画面にくぁwせdrftgyふじこlp;@:…

目覚めがすっきりしない。。。。。暑い〜

今年の夏はエルニーニョ現象で特に暑いらしいが、、、もう暑い、、、、

CPUの温度計は。。。42.5度。。。まだ今年の夏は早いか。。。

起き上がると、、、汗がたら〜と垂れてくる。。。。

熱帯魚の温度計は。。。25度。。。正常。。。。

パソコンの前に向かってプログラミングを始めるが、、、、アイディアがでてこない、、、、

Perlでプログラミングを書いているのだが、、、root権限でしか動かない仕様に頭をなやませ
いい方法はないかと考えてみる。。。。

電話がなって母親からの昼飯の相談、、、、

そうだ!OpenGLで行こう。。。。と思い付くが。。。。。
freeglut : ERROR: Internal error in function fgOpenWindow. X Error of failed request: BadWindow (invalid Window parameter) …

動かなぇ。。。。

でも、
http://nehe.gamedev.net/
なページを見つけた。

振り出しに戻る。。。。。アイディアが思いつかないので、、、GunslingerGirl OVAを見ながら
お昼ごはん。。。。ZZZzzz……

また寝ているのかと母親に起こされ、、、、しぶしぶ起きる。。。。

そうだ!Qtで開発すればいいんじゃね?・・・・

PerlQtを調べてみる。。。version3か。。。。まぁいいや。。。。

./configure
make
make install

….
Not Found smoke….

ふざけるな?そんなにスモークチーズが食べたいか?・・・・

振り出しに戻る。。。。
PerlのQt4はないかと探してみる。。。。。

google code にあった。

とりあえずコンパイル?
ccmake…
make
make install
….

Qt::application error!

。。。。。。。

なんでどいつもこいつも動かねぇんだよ。。。

そんなにいやなのか?ただ、CUIをGUIに変えるだけなのに。。。。
もうCUIでは完成してるのに。。。。

root権限め〜。。。。ZZZzzz…..

zzzz………………………
zzzz……………………..
zzzz……………………..

晩御飯どうする?と呼びにきた母親に起こされ。。。。。
晩御飯を食べてる途中。。。。。

あ〜そういえば。。。以前Qtで外部コマンドを動かすツールを作ったなぁ。。。。。

ってかなんで俺こんなにPerlにこだわってるんだろう。。。。。
別にPerlじゃなくてもいいじゃん。。。。。。

libpcapがつかえればいいんだから。。。。。

C言語でもいいんじゃねぇ?

ってかC++にすればQtも使えるじゃん!!↑↑↑

どっかにサンプル転がってないかなぁ。。。。。

おーあったあった。。。。
#include

pcaplookupdev()…..

おーデバイス出た!

しかも、、、、一般ユーザーでつかえた!!↑↑↑

ヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタ
ヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタ
ヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタ
ヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタ
ヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタ
ヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタ
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

C言語で骨組みのキャプチャー部分完成!

ってかもう2時ジャン。。。。。
あとは、Qtで肉付けすれば、、、完成か

Tagged with:
5月 15

Wiresharkでダンプしたパケット(cap,pcap)ファイルをPerlを使って解析するツール

事前にNet::Pcap(要libpcap),NetPacketをCpanからインストールしておいてください。

#/usr/bin/perl --
# 環境に合わせてperlのパスをあわせてください。
use strict;                         
use Net::Pcap;                      # .capおよび.pcapを開くためのライブラリ
use NetPacket::Ethernet qw(:ALL);   # Ethernet(データリンク層)からの解析
use NetPacket::IP;                  # IPフレームからの解析
use NetPacket::ICMP;        # ICMPフレームからの解析
use NetPacket::TCP;         # TCPフレームからの解析
use NetPacket::UDP;           # UDPフレームからの解析

my $input_file;   # ファイルが格納される変数
my $pcap;         # Net::Pcapのオブジェクト格納関数
my %header;       # ヘッダを格納するハッシュ変数
my $packet;       # パケットを格納する変数
my $err;          # エラーオブジェクト
my $pkt_cnt = 0;  # パケットカウント

$input_file = $ARGV[0]; #引数からファイルパスを格納
if(! -f $input_file){                      #input_fileが存在するか確認
   print "Can not exist ".$input_file."
";
   exit(1);
}

$pcap = Net::Pcap::open_offline($input_file, $err) or die "Can not open ".$input_file." using Pcap";
#open_onlineを利用した場合,イーサネットのデバイスを指定するとイーサネットから開きます。

while($packet = Net::Pcap::next($pcap, \%header)){ #pcapのライブラリから1行づつ読み込み
       &parse_packet($packet,\%header);             #parse_packet関数を利用
}
Net::Pcap::close($pcap);  #pcapオブジェを閉じる
# Main部分はここまで。
sub parse_packet {
   my($packet, $header) = @_;   #引数から格納
   $eth_obj = NetPacket::Ethernet->decode($packet); #パケットからデータリンク層にデコード

  $ip_obj = NetPacket::IP->decode($eth_obj->{data}); #データリンク層からIPフレームにデコード
   $src_ip = $ip_obj->{src_ip};
   $dest_ip = $ip_obj->{dest_ip};

   $time = $header->{tv_sec};
   $len = $header->{len};

   $proto = $ip_obj->{proto};

   print "From :".$src_ip." To:".$dest_ip."
";
   print $time."
";
   print "Length :".$len;

   if($proto == 1){ 
      #ICMPフレーム;
      $icmp_obj = NetPacket::ICMP->decode($ip_obj->{data});
   }
   elsif($proto == 4){ 
      #IPフレーム
   }
   elsif($proto == 6){
   #TCPフレーム
      $tcp_obj   = NetPacket::TCP->decode($ip_obj->{data});
      $src_port  = $tcp_obj->{src_port};
      $dest_port = $tcp_obj->{dest_port};
      $flags     = $tcp_obj->{flags};
   }
   elsif($proto == 17){
      #UDPフレーム
      $udp_obj   = NetPacket::UDP->decode($ip_obj->{data});
      $src_port  = $udp_obj->{src_port};
      $dest_port = $udp_obj->{dest_port};
      $flags     = $udp_obj->{flags};
   }
   else{
      print "Proto: ".$ip_obj->{proto}."
";
   }
}

詳細は
http://search.cpan.org/~saper/Net-Pcap-0.16/Pcap.pm
http://search.cpan.org/~yanick/NetPacket-0.41.1/

Tagged with:
3月 26

SNMPでNICが2つ以上あると
ifDescrで順序が入れ替わることがあり、
mrtgでネットワークトラフィックをうまく監視できない可能性がある。

そこで、perlとNet::SNMPで ifDescrから目的のethを取得して
Input / Output を吐かせるスプリクトを書いてみた。

[blockquote]
#!/usr/bin/perl —
eval ‘use Net::SNMP’;
if($@){ exit(“Net::SNMPが使用できません$@”); }
##################
$host = ‘192.168.1.105’;
$version = ‘1’;
$community = ‘network’;
##################
$utime = `uptime`;
$utime =~ /up(.*?),/;
$uptime = $1;
$uptime =~ s/^s*//g;

($session, $error) = Net::SNMP->session(
-hostname => $host,
-version => $version,
-community => $community
);
if (!defined($session)) {
exit(“ERROR: %s”, $error);
}
for($i=1;$i<5;$i++){ $oid = '1.3.6.1.2.1.2.2.1.2.'.$i; #$oid = 'ifDescr.2'; $result = $session->get_request(-varbindlist => [$oid]);
if( $result->{ $oid } eq ‘eth0’){
$in = ‘1.3.6.1.2.1.2.2.1.10.’.$i;
$out = ‘1.3.6.1.2.1.2.2.1.16.’.$i;
$res = $session->get_request(-varbindlist => [$in]);
print $res->{$in}.””;
$res = $session->get_request(-varbindlist => [$out]);
print $res->{$out}.””;
}
}
$session->close;
print $uptime.””;
print $host.””;

exit;

[/blockquote]

Tagged with:
9月 09

VNCなどさまざまなサービスやサーバーを行っている場合
とてもセキュリティーに不安である。

そこで必要なときにサービスを開始し、
終了したらサービスを停止するのが一番である。

そこでコマンドを利用した形にすれば
外部から必要に応じて操作できる。

具体的には
まずコントロールパネルから管理ツールを選択し、
サービスを起動させる。

そして設定したいサービスまたはサーバを探す。
例:Apache2,IIS Admin等。。。

このときスタートアップの種類が[自動]になっている場合
[手動]に変更しておくこと。

次に簡単な手順で実際にサービスを開始/終了できるか確かめる。
具体的には
スタートからプログラムを実行(R)を選択し
cmd
と入力するとコマンドプロンプトが出てくる。

※どうしても見つからない場合
c:WINDOWSsystem32cmd.exe
または
c:WINNTsystem32cmd.exe
にあることもある。

その後コマンドプロンプトで開始の場合
net start “サービス名”
終了の場合
net stop “サービス名”を入力

具体的には
net start “Apache2”
net stop “IIS Admin”
等、、、
特にサービス名に日本語やスペースがある場合 ””(ダブルコーテーションで囲むこと)

正常なメッセージが返ってきたら成功
なんかエラーメッセージが出てきたら
1.サービス名が間違っている
2.コマンドが間違っている。
3.開始しているのにStartまたは終了しているのにStopをした
のどれかが考えられるのでもう一度試してほしい。

これができればPHPやPerlにも簡単にプログラムが組める。
※必ずパスワードやSSHの通信を行ってください。
このプログラムはとても便利ですが悪用は簡単です。
十分危機管理をした上、自己責任で行ってください。

PHPの場合
<?php echo(shell_exec(‘net start “サービス名”‘)); ?>

Tagged with:
5月 16

#Default is /usr/local/mrtg-2
mkdir /usr/local/mrtg

./configure –prefix=/usr/local/mrtg
make
make install

#make mrtg, images and icons data directory
mkdir /home/user/public_html/mrtg
mkdir /home/user/public_html/mrtg/images
mkdir /home/user/public_html/mrtg/icons

#copy to icons data
cp /usr/local/mrtg/share/mrtg2/*.png /home/user/public_html/mrtg/icons

#make data and logs directory
mkdir /usr/local/mrtg/data
mkdir /usr/local/mrtg/logs

#make config data with cfgmaker
#cfgmaker:/usr/loca/mrtg/bin/cfgmaker
#cfgmaker [community]@[host] > [output]
#choice localhost or network example!!
cfgmaker localhost@localhost > /usr/local/mrtg/data/local.cfg
cfgmaker network@192.168.0.0 > /usr/local/mrtg/data/network.cfg

#And Edit
#First setting directory
Htmldir: /home/user/public_html/mrtg
Imagedir: /home/user/public_html/mrtg/images
Iconsdir: icons
Logdir: /usr/local/mrtg/logs

#Refresh [second]
Refresh : 300
#Language Japanese
Language: eucjp

Target[Traffics]: 2:[Community]@[Host]:
Target[Traffics]: 2:local@localhost:
SetEnv[Traffics]: MRTG_INT_IP=”192.168.0.0″ MRTG_INT_DESCR=”eth0″
MaxBytes[Traffics]: 12500000
Options[Traffics]:growright
Title[Traffics]: Traffic Analysis
PageTop[Traffics]: <h1>Traffic Analysis</h1>

###############################################
# CPU Load Average

Target[CPU_AVG]:1.3.6.1.4.1.2021.10.1.5.2&1.3.6.1.4.1.2021.10.1.5.2:community@192.168.0.0
MaxBytes[CPU_AVG]: 2000
Options[CPU_AVG]:integer, gauge, withzeroes, growright, noinfo, nopercent
YLegend[CPU_AVG]: CPU Load Average
ShortLegend[CPU_AVG]: (%)

LegendI[CPU_AVG]:Average 1 minutes
LegendO[CPU_AVG]:Average 5 minutes
Legend1[CPU_AVG]:Average 1 minutes
Legend2[CPU_AVG]:Average 5 minutes

Title[CPU_AVG]:CPU Load Average
PageTop[CPU_AVG]:<h1>CPU Load Average</h1>

##############################################
# Rate of CPU Usage

Target[CPU_USE]:.1.3.6.1.4.1.2021.11.50.0&.1.3.6.1.4.1.2021.11.52.0:community@192.168.0.0
MaxBytes[CPU_USE]: 100
Options[CPU_USE]:growright, noinfo, nopercent

YLegend[CPU_USE]: CPU Usage
ShortLegend[CPU_USE]:(%)

LegendI[CPU_USE]:User:
LegendO[CPU_USE]:System:
Legend1[CPU_USE]:CPU Usage (User)
Legend2[CPU_USE]:CPU Usage (System)

Title[CPU_USE]: Rage of CPU Usage
PageTop[CPU_USE]:<h1>Rate of CPU Usage</h1>

##############################################
# Memory Free
Target[Mem]:.1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0:community@192.168.0.0
#MaxBytes[Mem]:2289220
MaxBytes1[Mem]:2289220
MaxBytes2[Mem]:505860
Unscaled[Mem]:dwmy
Options[Mem]:gauge, growright, noinfo

YLegend[Mem]:Memory Free
ShortLegend[Mem]:Bytes
kilo[Mem]:1024
kMG[Mem]:k,M,G,T,P

LegendI[Mem]:Real
LegendO[Mem]:Swap
Legend1[Mem]:Real Memory
Legend2[Mem]:Swap Memory

Title[Mem]:Memory Free
PageTop[Mem]:<h1>Memory Free</h1>

#############################################
# Disk Used
Target[Disk]:.1.3.6.1.4.1.2021.9.1.9.1&.1.3.6.1.4.1.2021.9.1.9.1:community@192.168.0.0
MaxBytes[Disk]:100
Unscaled[Disk]:dwmy
Options[Disk]:gauge, growright, nopercent, noinfo

YLegend[Disk]:Disk Used
ShortLegend[Disk]:(%)

LegendI[Disk]:/ Disk Used
LegendO[Disk]:/ Disk Used
Legend1[Disk]:/ Disk Used
Legend2[Disk]:/ Disk Used

Title[Disk]: Disk Used
PageTop[Disk]:<h1> Disk Used </h1>

#Save And Close
#Go to /usr/local/mrtg/bin

./mrtg /usr/local/merg/data/local.cfg
# or
./mrtg /usr/local/merg/data/network.cfg

#if you show these Errors
———————————————————————–
ERROR: Mrtg will most likely not work properly when the environment
variable LANG is set to UTF-8. Please run mrtg in an environment
where this is not the case. Try the following command to start:

env LANG=C ./mrtg /usr/local/mrtg/data/network.cfg
———————————————————————–
>env LANG=C ./mrtg /usr/local/mrtg/data/network.cfg

#make index.html
./indexmaker /usr/local/mrtg/data/local.cfg > /home/user/public_html/mrtg/
#or
./indexmaker /usr/local/mrtg/data/network.cfg > /home/user/public_html/mrtg/

#Add service Crond
crontab -e
*/5 * * * * root ./mrtg /usr/local/mrtg/data/network.cfg
or
*/5 * * * * root LANG=C ./mrtg /usr/local/mrtg/data/network.cfg

Tagged with:
4月 13

CF-W4.jpg

型番:Panasonic Let’s note CF-W4

CPU:Intel Pentium Cereron 1.2GHz

RAM:512

HDD:60GB

OS:Windows XP professional FedoraCore7

Service:NicoNico Bypass KaberenLoader Apache2.0 FTP SSH2 PHP5 Perl5.6 ext

周辺機器:DVD-ROM/CD-R/CD-RW/CD-ROM IntelPRO/Wireless2915ABG,SD-Slot,ext…

(Kait 専用モデル)

Tagged with:
7月 29

大学でニコニコが見れない

ていうか youtube とか Stage6とかもみれないけどね

だが現在ニコニコのバイパスプログラムにより
ログイン後の画面は表示できるようになった

次は映像ぶぶんだな
http://fedorax.ddo.jp:4828/~master/nico/index.cgi

Tagged with:
7月 16

今までのMusic Search System はSQLの面で
ただのテーーブル管理だったのを

ver.2.0からはリレーションテーブルに
また、File Manage Sysytem も
ID3の部分をphp => perl + modules に変更

さらに
soundManage 2.0 のリレーション
perl による DBD::iPod でiPodとsysnc

などなど改良します

Tagged with:
1 / 3123
preload preload preload