首页 > php教程 > php手册 > 正文

PHP:根据IP地址获取所在城市

php中文网
发布: 2016-06-06 19:56:32
原创
1703人浏览过

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 if ( $useripFlag == chr( 2 ) ) { $AddrSeek = fread( $fd, 3 ); if ( strlen( $AddrSeek ) 3 ) { fclose( $fd ); return 'System Error'; } $useripFlag = fread( $fd, 1 ); if

欢迎进入linux社区论坛,与200万技术人员互动交流 >>进入

 

  if ( $useripFlag == chr( 2 ) ) {

  $AddrSeek = fread( $fd, 3 );

  if ( strlen( $AddrSeek )

  fclose( $fd );

  return 'System Error';

  }

  $useripFlag = fread( $fd, 1 );

  if ( $useripFlag == chr( 2 ) ) {

  $AddrSeek2 = fread( $fd, 3 );

  if ( strlen( $AddrSeek2 )

  fclose( $fd );

  return 'System Error';

  }

  $AddrSeek2 = implode( '', unpack( 'L', $AddrSeek2 . chr( 0 ) ) );

  fseek( $fd, $AddrSeek2 );

  } else {

  fseek( $fd, -1, SEEK_CUR );

  }

  while ( ($char = fread( $fd, 1 )) != chr( 0 ) )

  $useripAddr2 .= $char;

  $AddrSeek = implode( '', unpack( 'L', $AddrSeek . chr( 0 ) ) );

  fseek( $fd, $AddrSeek );

  while ( ($char = fread( $fd, 1 )) != chr( 0 ) )

  $useripAddr1 .= $char;

  } else {

  fseek( $fd, -1, SEEK_CUR );

  while ( ($char = fread( $fd, 1 )) != chr( 0 ) )

  $useripAddr1 .= $char;

  $useripFlag = fread( $fd, 1 );

  if ( $useripFlag == chr( 2 ) ) {

  $AddrSeek2 = fread( $fd, 3 );

  if ( strlen( $AddrSeek2 )

  fclose( $fd );

  return 'System Error';

  }

  $AddrSeek2 = implode( '', unpack( 'L', $AddrSeek2 . chr( 0 ) ) );

  fseek( $fd, $AddrSeek2 );

  } else {

  fseek( $fd, -1, SEEK_CUR );

  }

  while ( ($char = fread( $fd, 1 )) != chr( 0 ) ) {

  $useripAddr2 .= $char;

  }

  }

  fclose( $fd );

  //返回IP地址对应的城市结果

  if ( preg_match( '/http/i', $useripAddr2 ) ) {

  $useripAddr2 = '';

  }

  $useripaddr = "$useripAddr1 $useripAddr2";

  $useripaddr = preg_replace( '/CZ88.Net/is', '', $useripaddr );

  $useripaddr = preg_replace( '/^s*/is', '', $useripaddr );

  $useripaddr = preg_replace( '/s*$/is', '', $useripaddr );

  if ( preg_match( '/http/i', $useripaddr ) || $useripaddr == '' ) {

  $useripaddr = 'No Data';

  } elseif ( !$this->is_utf8( $useripaddr ) ) {

  $useripaddr = iconv( 'GBK', 'UTF-8', $useripaddr );

  }

  return $useripaddr;

  }

  /**

  * 判断是否我utf-8编码的字符串

  * @param type $string

  * @return boolean

  */

  private function is_utf8( $string ) {

  if ( preg_match( "/^([" . chr( 228 ) . "-" . chr( 233 ) . "]{1}[" . chr( 128 ) . "-" . chr( 191 ) . "]{1}[" . chr( 128 ) . "-" . chr( 191 ) . "]{1}){1}/", $string ) == true || preg_match( "/([" . chr( 228 ) . "-" . chr( 233 ) . "]{1}[" . chr( 128 ) . "-" . chr( 191 ) . "]{1}[" . chr( 128 ) . "-" . chr( 191 ) . "]{1}){1}$/", $string ) == true || preg_match( "/([" . chr( 228 ) . "-" . chr( 233 ) . "]{1}[" . chr( 128 ) . "-" . chr( 191 ) . "]{1}[" . chr( 128 ) . "-" . chr( 191 ) . "]{1}){2,}/", $string ) == true ) {

  return true;

  } else {

  return false;

  }

  }

  }

  QQWry.Dat文件可以在百度上搜索或者需要的发你邮箱来,我通过邮箱发给你。

  使用演示:

  ?

  1

  2

  3

  4 include FCPATH . 'plugin/ipLocation/ipCity.class.php';

  $city = new ipCity();

  $addr = $city->getCity( '172.0.0.1' );

  echo $addr; // echo 本地地址

  [1] [2] 

PHP:根据IP地址获取所在城市

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号