|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
- <?php
- define('SMALL', 0);
- define('BIG', 1);
- class ClientInfo {
- var $flag_dirs = array(SMALL => 'assets/flags/small', BIG => 'assets/flags/big');
- var $flag_ext = 'png';
- cfunction getctrybycode($code) {
- $countryArray = array();
- $input = "includes/countries.dat";
- $fd = fopen($input,"r") or die("Error: cannot open $input!");
- while ($buffer = fgets($fd,4096))
- {
- $buffer = preg_replace("/\n/","",$buffer); //chomp()
- $pieces = explode(",",$buffer);
- $countryCode = $pieces[0]; $countryName = $pieces[1];
- $countryArray[$countryCode] = $countryName;
- }
- fclose($fd);
- return $countryArray[$code];
- }
- cfunction getctrybyhost($hostname) {
- return($this->getctrybycode($this->getctrycodebyhost($hostname)));
- }
- cfunction getctrycodebyhost($hostname) {
- return(substr(strrchr($hostname,'.'),1));
- }
- cfunction MaskOtherIP($IP) {
- if($IP==getenv("REMOTE_ADDR"))
- return($IP);
- $IP=strtr($IP,"0123456789","##########");
- return($IP);
- }
- cfunction getClientIP() {
- $IP = getenv('REMOTE_ADDR');
- return $IP;
- }
- cfunction getClientHostname()
- {
- $error = 0;
- $IP = $this->getClientIP();
- $hostname = gethostbyaddr($IP);
- if(!strcmp($hostname,$IP)) $error = 1; // if failure, gethostbyaddr() returns the IP
- if (!$error) //if no error
- {
- return $hostname;
- }
- //else
- return "";
- }
- cfunction getClientCountry()
- {
- $error = 0;
- $hostname = $this->getClientHostname();
- if (!strcmp($hostname,"")) $error = 1;
- if (!$error)
- {
- $country = $this->getctrybyhost($hostname);
- return $country;
- }
- //else
- return "";
- }
- cfunction getClientFlag($size)
- {
- $error = 0;
- $hostname = $this->getClientHostname();
- if (!strcmp($hostname,"")) $error = 1;
- if (!$error)
- {
- $country_code = strtolower($this->getctrycodebyhost($hostname));
- $file_name = $this->flag_dirs[$size] . '/' . $country_code . '.' . $this->flag_ext;
- if (is_readable($file_name))
- {
- return $file_name;
- }
- }
- //else
- return "";
- }
- cfunction getClientFlagHTML($size)
- {
- $error = 0;
- $flag = $this->getClientFlag($size);
- if (!strcmp($flag,"")) $error = 1;
- if (!$error)
- {
- return '<img src="' . $flag . '">';
- }
- //else
- return "";
- }
- };
复制代码
www.hkgo.net.ru |
|