0: 0000
1: 0001
2: 0010
3: 0011
4: 0100
5: 0101
6: 0110
7: 0111
8: 1000
9: 1001
a: 1010
b: 1011
c: 1100
d: 1101
e: 1110
f: 1111
#!/usr/bin/perl
our $data = 'a';
our $BIT_LENGTH = 4; # ビットの長さ
$data = hex($data);
$data = pack("C", $data);
my @data = unpack("C", $data);
my $mask = 0x00000001; # マスク
for(my $i = 1; $i <= $BIT_LENGTH; $i++) {
# if(~$data[0] & $mask) { # (注: on: 0 / off: 1 のとき、~$data[0] とする)
if( $data[0] & $mask) {
# ここに(マスクにヒット)ビットが立っているときの処理を書く
print "bit $i: 1\n";
} else {
# ここにビットが立っていないときの処理を書く
print "bit $i: 0\n";
}
$mask = $mask << 1;
}
0: 0000
1: 0001
2: 0010
3: 0011
4: 0100
5: 0101
6: 0110
7: 0111
8: 1000
9: 1001
a: 1010
b: 1011
c: 1100
d: 1101
e: 1110
f: 1111
#!/usr/bin/perl
our $data = 'a';
our $BIT_LENGTH = 4; # ビットの長さ
$data = hex($data);
$data = pack("C", $data);
my @data = unpack("C", $data);
my $mask = 0x00000001; # マスク
for(my $i = 1; $i <= $BIT_LENGTH; $i++) {
# if(~$data[0] & $mask) { # (注: on: 0 / off: 1 のとき、~$data[0] とする)
if( $data[0] & $mask) {
# ここに(マスクにヒット)ビットが立っているときの処理を書く
print "bit $i: 1\n";
} else {
# ここにビットが立っていないときの処理を書く
print "bit $i: 0\n";
}
$mask = $mask << 1;
}
#blockquote {
-moz-border-radius: 10px;
border: 1px dotted #a3b8cc;
}
#blockquote {
-moz-border-radius: 10px;
border: 1px dotted #a3b8cc;
}
使用するモジュール
use Authen::Radius;
#!/usr/bin/perl
use Authen::Radius;
our $HOST = '1.1.1.1';
our $USERNAME = 'perltips';
our $PASSWORD = 'password';
our $SECRET = 'testing123';
# First Trial
$r = new Authen::Radius(Host => $HOST,
Secret => $SECRET,
Debug => 1,
TimeOut=> 10);
# 前座。ユーザー名とパスワードのチェックをしてみる。
print "auth result=", $r->check_pwd($USERNAME,
$PASSWORD,
$HOST), "\n";
# Authen::Radius->load_dictionary();
# 本番。ユーザー名とパスワードのチェックを設定する。
$r->add_attributes (
{ Name => 'UserName', Value => $USERNAME },
{ Name => 'Password', Value => $PASSWORD },
# { Name => 'NAS-IP-Address', Value => '1.1.1.2' }
#
# RFC 2865 https://www.ietf.org/rfc/rfc2865.txt calls this attribute
# User-Password. Check your local RADIUS dictionary to find
);
# ユーザー名とパスワードの組み合わせ (アトリビュート:属性) を、ACCESS_REQUEST で送る。
# そうすると返事が返って来るので recv_packet で受け取る。
$r->send_packet(ACCESS_REQUEST) and $type = $r->recv_packet();
print "server response type = $type\n";
# サーバから送られてきたアトリビュートを表示してみる。
for $a ($r->get_attributes()) {
print "attr: name=$a->{'Name'} value=$a->{'Value'}\n";
}
使用するモジュール
use Authen::Radius;
#!/usr/bin/perl
use Authen::Radius;
our $HOST = '1.1.1.1';
our $USERNAME = 'perltips';
our $PASSWORD = 'password';
our $SECRET = 'testing123';
# First Trial
$r = new Authen::Radius(Host => $HOST,
Secret => $SECRET,
Debug => 1,
TimeOut=> 10);
# 前座。ユーザー名とパスワードのチェックをしてみる。
print "auth result=", $r->check_pwd($USERNAME,
$PASSWORD,
$HOST), "\n";
# Authen::Radius->load_dictionary();
# 本番。ユーザー名とパスワードのチェックを設定する。
$r->add_attributes (
{ Name => 'UserName', Value => $USERNAME },
{ Name => 'Password', Value => $PASSWORD },
# { Name => 'NAS-IP-Address', Value => '1.1.1.2' }
#
# RFC 2865 https://www.ietf.org/rfc/rfc2865.txt calls this attribute
# User-Password. Check your local RADIUS dictionary to find
);
# ユーザー名とパスワードの組み合わせ (アトリビュート:属性) を、ACCESS_REQUEST で送る。
# そうすると返事が返って来るので recv_packet で受け取る。
$r->send_packet(ACCESS_REQUEST) and $type = $r->recv_packet();
print "server response type = $type\n";
# サーバから送られてきたアトリビュートを表示してみる。
for $a ($r->get_attributes()) {
print "attr: name=$a->{'Name'} value=$a->{'Value'}\n";
}
https://…/mt-tb.cgi/xxx」へのトラックバックは失敗しました: HTTP error: 403 Throttled
なるエラーがログに記録されていて、トラックバックができなくなってしまうことがある。この場合は、自サイトでもエントリー間でリンクを貼りあうことは SEO 対策として有効である。各ページが相互に関連し合ったサイトとみなされるからである。
さて、上の方針を元に自サイト内のエントリーにトラックバックを Movable Type で送り合っていると、途中で
https://…/mt-tb.cgi/xxx」へのトラックバックは失敗しました: HTTP error: 403 Throttled
なるエラーがログに記録されていて、トラックバックができなくなってしまうことがある。この場合は、