JAVA Web开发过程中,很多场景下需要获取访问终端的IP,对应方法getRemoteAddr.例如调试过程中本地回环ip地址是127.0.0.1,忽然有一天返回 0:0:0:0:0:0:0:1,这个是IPv6地址,是不是会让人蒙圈.当前互联网环境下仍以ipv4为主,大家习惯接受的ipv4地址. 具体原因是因为开发者使用了高版本的操作系统,Win7/Win10等启用了ipv6,大家需要手工禁止,或者通过参数控制. 常用方法 方法1:修改server.xml <Connector port=&quo…
    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr() ,这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.     如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为http://www.xxx.com/ 的URL时,用request.getRemoteAddr() 方法获取的IP地址是:127.0.0.1 或 192.168.1.11…
获取IP  解决request.UserHostAddress取不到真实IP private string GetClientIP()   {    string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];    if (null == result || result == String.Empty)    {     result = HttpContext.Curren…
服务端: //方法一 HttpContext.Current.Request.UserHostAddress; //方法二 HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; //方法三 string strHostName = System.Net.Dns.GetHostName(); string clientIPAddress = System.Net.Dns.GetHostAddresses(strHostNa…
方法1 public static String getIp2(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); if (ip != null && !"unKnown".equalsIgnoreCase(ip)) { // 多次反向代理后会有多个ip值,第一个ip才是真实ip int index = ip.indexOf(",&q…
get_client_ip()获取ip地址,在开启IPv6协议的主机上会全部返回0.0.0.0原因是他会把ipv6地址认为是非法地址而转换成0.0.0.0,而ipv4地址在ipv6主机上用get_client_ip()会放回类似::ffff:192.168.1.250这样的形式. /** * 转换IPv6地址为bin * @param string $ip 返回类型 0 数字 1 返回False * @return mixed */ function ip2bin($ip) { if(filte…
System.Net.IPAddress addr; //获取IP addr = new System.Net.IPAddress ( Dns.GetHostByName ( Dns.GetHostName ( ) ) .AddressList [0].Address ) ; return addr.ToString ( ) ; //获取PCname string pcname=Dns.GetHostName();…
获取ip if request.META.has_key('HTTP_X_FORWARDED_FOR'): ip_c = request.META['HTTP_X_FORWARDED_FOR'] else: ip_c = request.META['REMOTE_ADDR'] 判定ip是否在数据库中,进行不同处理 ip_exist = Result.objects.filter(ip__contains = str(ip_c)) #ip代表数据库字段 Result为model名称(数据库表名)…
症状: Windows操作系统,eclipse开发环境下,在本机上使用http://localhost:8080/...访问本机上的页面,使用tomcat作为服务器 在Servlet或者Action中使用request.getRemoteAddr()获取的返回值不是IPv4的格式aaa.bbb.ccc.ddd,而是IPv6的格式x:y:z:a:b:c:v:w 原因: C:\Windows\System32\drivers\etc\hosts中 有一行,如下,将localhost映射为了ipv6格…
问题: 在近期开发的javaweb项目中,需要记录登录时的电脑ip地址和主机名,通过request.getRemoteAddr()和request.getRemoteHost()得到的值都是0:0:0:0:0:0:0:1. 原因: 0:0:0:0:0:0:0:1是属于ipv6,后来我又进行另一台电脑做测试,发现这种情况只有在服务器和客户端都在同一台电脑上才会出现(例如用localhost访问的时候才会出现),这是hosts配置文件的问题 . 解决方法: 注释掉文件中的 # ::1 localho…