ci框架为啥不能获取客户端的ip,一直获取的是服务器的IP
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ci框架为啥不能获取客户端的ip,一直获取的是服务器的IP相关的知识,希望对你有一定的参考价值。
这是php的
if ( ! function_exists('ip'))/**
* 获取IP地址
*
* @param string $format 返回IP格式,(默认)表示传统的127.0.0.1,int或其它表示转化为整型,便于存放到数据库字段
* @param string $side IP来源,(默认)表示客户端,server或其它表示服务端
* @return string or int
*/
function ip($format = 'string', $side = 'client')
if ($side === 'client')
static $_client_ip = NULL;
if ($_client_ip === NULL)
// 获取客户端IP地址
$ci = &get_instance ();
$_client_ip = $ci->input->ip_address ();
$ip = $_client_ip;
else
static $_server_ip = NULL;
if ($_server_ip === NULL)
// 获取服务器IP地址
if (isset ( $_SERVER ))
if ($_SERVER ['SERVER_ADDR'])
$_server_ip = $_SERVER ['SERVER_ADDR'];
else
$_server_ip = $_SERVER ['LOCAL_ADDR'];
else
$_server_ip = getenv ( 'SERVER_ADDR' );
$ip = $_server_ip;
return $format === 'string' ? $ip : bindec ( decbin ( ip2long ( $ip ) ) );
参考技术A 因为你就在服务器上访问的! 参考技术B 直接用js获取最准确
Java Web如何获取客户端的Hostname?
Java Web使用Spring框架 Tomcat部署在linux系统
请问如何获取客户端的Hostname传给后端做资料处理?
request.getRemoteHost();已测返回的是IP地址
需要JSP页面先行获取么 JS/JQuery如何获取?
使用request对象。用:
request.getHostName(); 参考技术B 取不到的,web通信,在网络上传输的只有ip,没有主机名信息的 参考技术C js获取主机名可以看看这个:
http://blog.csdn.net/zyw_anquan/article/details/7970869本回答被提问者采纳 参考技术D java.net.InetAddress inetAddress = new java.net.InetAddress();
inetAddress.getLocalHost().getHostName();
以上是关于ci框架为啥不能获取客户端的ip,一直获取的是服务器的IP的主要内容,如果未能解决你的问题,请参考以下文章