⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbinfo

📁 关于Berkelay数据库的共享源码
💻
字号:
#!/usr/local/bin/perl# Name:		dbinfo -- identify berkeley DB version used to create #			  a database file## Author:	Paul Marquess  <Paul.Marquess@btinternet.com># Version: 	1.05 # Date		1sh November 2003##     Copyright (c) 1998-2003 Paul Marquess. All rights reserved.#     This program is free software; you can redistribute it and/or#     modify it under the same terms as Perl itself.# Todo: Print more stats on a db file, e.g. no of records#       add log/txn/lock filesuse strict ;my %Data =	(	0x053162 =>	{			  Type 	   => "Btree",			  Versions => 				{				  1	=> [0, "Unknown (older than 1.71)"],				  2	=> [0, "Unknown (older than 1.71)"],				  3	=> [0, "1.71 -> 1.85, 1.86"],				  4	=> [0, "Unknown"],				  5	=> [0, "2.0.0 -> 2.3.0"],				  6	=> [0, "2.3.1 -> 2.7.7"],				  7	=> [0, "3.0.x"],				  8	=> [0, "3.1.x -> 4.0.x"],				  9	=> [1, "4.1.x or greater"],				}			},	0x061561 => 	{			  Type     => "Hash",			  Versions =>				{				  1	=> [0, "Unknown (older than 1.71)"],        			  2     => [0, "1.71 -> 1.85"],        			  3     => [0, "1.86"],        			  4     => [0, "2.0.0 -> 2.1.0"],        			  5     => [0, "2.2.6 -> 2.7.7"],        			  6     => [0, "3.0.x"],				  7	=> [0, "3.1.x -> 4.0.x"],				  8	=> [1, "4.1.x or greater"],				}			},	0x042253 => 	{			  Type     => "Queue",			  Versions =>				{				  1	=> [0, "3.0.x"],				  2	=> [0, "3.1.x"],				  3	=> [0, "3.2.x -> 4.0.x"],				  4	=> [1, "4.1.x or greater"],				}			},	) ;die "Usage: dbinfo file\n" unless @ARGV == 1 ;print "testing file $ARGV[0]...\n\n" ;open (F, "<$ARGV[0]") or die "Cannot open file $ARGV[0]: $!\n" ;my $buff ;read F, $buff, 30 ;my (@info) = unpack("NNNNNNC", $buff) ;my (@info1) = unpack("VVVVVVC", $buff) ;my ($magic, $version, $endian, $encrypt) ;if ($Data{$info[0]}) # first try DB 1.x format, big endian{    $magic = $info[0] ;    $version = $info[1] ;    $endian  = "Big Endian" ;    $encrypt = "Not Supported";}elsif ($Data{$info1[0]}) # first try DB 1.x format, little endian{    $magic = $info1[0] ;    $version = $info1[1] ;    $endian  = "Little Endian" ;    $encrypt = "Not Supported";}elsif ($Data{$info[3]}) # next DB 2.x big endian{    $magic = $info[3] ;    $version = $info[4] ;    $endian  = "Big Endian" ;}elsif ($Data{$info1[3]}) # next DB 2.x little endian{    $magic = $info1[3] ;    $version = $info1[4] ;    $endian  = "Little Endian" ;}else  { die "not a Berkeley DB database file.\n" }my $type = $Data{$magic} ;$magic = sprintf "%06X", $magic ;my $ver_string = "Unknown" ;if ( defined $type->{Versions}{$version} ){     $ver_string = $type->{Versions}{$version}[1];     if ($type->{Versions}{$version}[0] )       { $encrypt = $info[6] ? "Enabled" : "Disabled" }     else       { $encrypt = "Not Supported" }}print <<EOM ;File Type:		Berkeley DB $type->{Type} file.File Version ID:	$versionBuilt with Berkeley DB:	$ver_stringByte Order:		$endianMagic:			$magicEncryption:             $encryptEOMclose F ;exit ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -