#!/usr/bin/perl #功能:显示域名百宝箱客户的ICP号的服务器端程序 #$$Id: geticp.cgi,v 1.2 2005/12/20 07:31:07 peter Exp $$ use strict; use CGI qw(:standard :html3); use POSIX qw(strftime); my $domain_root = "/data/domains"; my $geticp_log = "/data/logs/geticp.log"; my $glog_time = strftime "%Y%m%d-%H:%M:%S", localtime; my $domain = param('domain'); $domain = lc($domain); $domain =~ s/^www// if ( $domain =~ /^www/ ); $domain = &topunycode("GBK",$domain); my $icp_str_file=$domain_root . "/$domain/cert/bazs.icpstr"; my $cert_str = &get_icp_no($icp_str_file); &write_log("domain=$domain,cert_str=$cert_str"); print "Content-Type: text/plain\n\n"; print "document.write(\'$cert_str\');"; sub get_icp_no { my $beianfile = shift; open( FD, $beianfile ) || return ""; my $ret = ; close(FD); return $ret; } # 记录日志 sub write_log { open( FHLOG2, ">> $geticp_log" ) || return ""; flock( FHLOG2, 2 ); print FHLOG2 "$glog_time,$_[0]\n"; close(FHLOG2); } sub topunycode { my ( $charset, $name ) = @_; if ( $name =~ /[\x80-\xff]/ ) { chop( $name = `CHARSET=$charset /usr/local/bin/idn --quiet -a "$name"` ); } return $name; }