导航:首页 > 配服务器 > 服务器能获取客户ip地址吗

服务器能获取客户ip地址吗

发布时间:2022-08-16 02:21:19

㈠ 如何获取用户真实访问IP问题

1、如果服务器如果没有采用反向代理,而且客户端没有用正向代理的话,那么可以获取客户端的真实IP地址request.getRemoteAddr()
2、如果服务器如果没有采用反向代理,而且客户端有用正向代理的话,那么通过request.getRemoteAddr()获取客户端的IP地址是客户端 的代理服务器的地址,并不是客户端的真实地址,
3、如果客户端使用的是多层代理的话,服务器获得的客户端地址是客户端的最外围代理服务器的地址如果服务器如果采用反向代理服务器,不管客户端采用的是何种方式访问服务器。
//获得客户端真实IP地址的方法一:
public String getRemortIP(HttpServletRequest request) {
if (request.getHeader("x-forwarded-for") == null) {
return request.getRemoteAddr();
}
return request.getHeader("x-forwarded-for");
}
//获得客户端真实IP地址的方法二:
public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}

㈡ 服务器如何获取客户端的IP地址,并与客户端建立TCP连接

客户端的IP自动获取,关键要看客户端的IP是由谁来分配的,如果都是有ISP提供的那么服务器利用IP去连接客户端就不太可能。可以尝试用下面两种思路解决:
1、能否让客户机主动连接服务器。
2、使用动态DNS。让每个客户机都申请一个动态域名,无论它的IP怎样变,当改变以后都会到DNS服务器进行注册,然后服务器使用主机的名字访问客户端。

㈢ 如何通过Socket获得所有客户端连接的IP地址

如果服务器端要获取客户端ip的话:
//假设socket(),bind(),listen()函数已经完成addrlen
=
sizeof(client);connetfd
=
accept(listenfd,(struct
sockaddr
*)&client,&addrlen);那么client.sin_port
就是客户端的端口
client.sin_addr.s_addr
就是客户端的ip。
这两个都是以网络字节序来保存的,如果要printf的话需要先转化为主机字节序

㈣ http服务器怎样获取客户端ip

客户端
ip
地址是通过
cgi
变量
remote_addr
得到的,这个是
http
服务器负责提供。
http
服务器和客户端浏览器之间存在
socket
连接,socket
连接信息包含了另一侧的
ip
地址和端口。
当然,最终用户如果是通过代理服务器访问怎么办呢?目前主流的
http
代理服务器都支持在
http
报头添加
x-forwarded-for
信息,这可以是一个列表,如果所有的代理

㈤ 服务端知道客户端的内网ip吗

服务端是不知道客户端的内网ip的,只是知道外网IP。

如果你的服务器在内网使用一般用的就是内网IP,如果服务器不在你的内网中它的IP就是外网IP了。内网是客服端的IP地址,外网服务器的IP地址。还有看网络的策略是怎么规划的。

服务端的权限:

在定义服务端命令时,您可以根据您的业务需要来设置权限,也就是可以调用该服务端命令的角色。创建完服务端命令时,在常规设置页签中,您可以设置权限,也就是可以调用该服务端命令的角色。

㈥ 如何获取客户端和服务器ip地址

您好,.X.XXX.XXX系列IP,而这个函数获取的是局域网网关出口的IP地址,如果访问者使用代理服务器,将不获取代理服务器的IP,而是获取访问者网关的真实IP。如果将这个函数应用到限IP访问的网页中,别人即使通过限IP访问段中的代理服务器,也不能访问该页面。
下面提供一个函数:<?php
// 定义一个函数getIP()
function getIP(){global $ip;
if (getenv("HTTP_CLIENT_IP"))
$ip = getenv("HTTP_CLIENT_IP");
else if(getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if(getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");else$ip = "Unknow";
return $ip;}
// 使用方法:
echo getIP();?>
getenv("REMOTE_ADDR")用来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 getenv("HTTP_X_FORWARDED_FOR") 来读取。
但是如果客户端没有通过代理服务器来访问,那么用getenv("HTTP_X_FORWARDED_FOR") 取到的值将是空的。
else if(getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
表示如果getenv("HTTP_X_FORWARDED_FOR") 取到的值存在不为空(即客户端使用代理服务器的情况下),则变量$ip等于getenv("HTTP_X_FORWARDED_FOR") 取到的真实IP值。
如果上面的else if(getenv("HTTP_X_FORWARDED_FOR"))取得的值为空(即没有使用代理服务器),则不会执行下面的$ip = getenv("HTTP_X_FORWARDED_FOR");这一行语句。
这种情况下已经确认客户端没有使用代理服务器,从而通过
else if(getenv("REMOTE_ADDR"))
这两行语句获得客户端的IP地址也是真实的IP地址。

㈦ DHCP服务器为客户机分配IP地址的三种方式是什么

简单地说,可以通过DHCP服务器获得客户机IP地址;第二种就是用客户机所汇总的IP地址实现DHCP服务器的获取。第三种就是要把DHCP服务器架构到核心交换机上实现IP地址分配。

㈧ 如何获取客户端IP和MAC地址,我获取的是服务器的,C

MAC地址是2层的东西,过了3层路由器后源MAC与目的MAC就会跟着所经过的路由器地址改变,如果在客户端没有任何响应进程将MAC地址信息放在应用层,理论上你不可能获得。能非常容易的获得ip地址、mac地址跟主机名应该是蛮危险的事情。你要真想问,你可以去黑客论坛找找吧。。。

㈨ 通常说的服务器获取客户端电脑的IP指的是"IPv4地址",还是"DNS服务器"地址

电脑是从DHCP服务器获得ip地址以及dns地址。
所以电脑不需要手动设置。
直接从服务器获得。

㈩ 服务器端能获取客户ip地址,是利用什么原理

应该是 OSI 七层模型当中网络层的 IP 协议,TCP 和 UDP 协议都只具备2字节的源端口号(0~65536),源地址应该是由 IP 层提供的32位源IP地址来提供的,IIS应该是由此信息生成了 REMOTE_ADDR 这个ServerVariable。

阅读全文

与服务器能获取客户ip地址吗相关的资料

热点内容
单片机lcd汉字显示 浏览:878
能够识别中文的编译器 浏览:60
androidlayout注释 浏览:957
重启手机命令 浏览:836
程序员那么可爱男女主是谁 浏览:490
文件如何上传到自己的服务器 浏览:399
你用什么app 浏览:224
安卓平板用什么优化软件 浏览:747
centos重新编译程序 浏览:335
cocoapods命令 浏览:906
androidusb卸载 浏览:143
linux解压缩软件 浏览:143
ppt及备注转pdf 浏览:564
ssh下载文件命令 浏览:821
程序员考MBA 浏览:265
国外加密锁是什么样子 浏览:229
linuxhosts重启 浏览:168
c语言编译正确但是不能执行 浏览:856
编程素质教育代理 浏览:908
渴望力量程序员 浏览:370