导航:首页 > 配服务器 > 服务器获取客户端地址为0

服务器获取客户端地址为0

发布时间:2022-09-18 23:58:53

Ⅰ 为什么在jsp中 request.getLocalAddr()为0.0.0.0,而不是本地ip地址

原因:这种情况只有在服务器和客户端都在同一台电脑上才会出现,即采用localhost进行页面访问的时出现。具体原因是因为C:\Windows\System32\drivers\etc\hosts这个东西作怪。

解决办法:(1)以文本的形式打开,只要注释掉文件中的 # ::1 localhost 这一行即可解决问题。
(2)本机访问的时,不要用localhost访问,用127.0.0.1或本机ip代替
(3)采用${pageContext.request.serverName }替代可以获取到localhost

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

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

Ⅲ 如何获取客户端和服务器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地址。

Ⅳ 如何获得Socket连接客户端的IP地址

如果服务器端要获取客户端ip的话:


//假设socket(),bind(),listen()函数已经完成
addrlen=sizeof(client);
connetfd=accept(listenfd,(structsockaddr*)&client,&addrlen);

那么client.sin_port 就是客户端的端口

client.sin_addr.s_addr 就是客户端的ip。

这两个都是以网络字节序来保存的,如果要printf的话需要先转化为主机字节序

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

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

Ⅵ PHP获取客户端IP是127.0.0.1 什么原因

127.0.0.1 是具有特殊含义的 IP 地址,代表的是本机。所以如果是在本地进行PHP测试(即服务器与客户端在一台电脑上),可能返回的就是这个地址。

Ⅶ 如何获取cas应用中的服务器和客户端地址

0
pter的updatecount方法,final ClientInfo clientInfo = ClientInfoHolder.getClientInfo();这行代码是获取客户端IP和服务端IP

Ⅷ asp.net网站发布到服务器之后,获取的客户端IP都是127.0.0.1,为什么

publicstringIPAddress()
{
stringresult=String.Empty;
result=HttpContext.Current.Request.ServerVariables["HTTP_VIA"];
if(!string.IsNullOrEmpty(result))
{
result=HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if(!string.IsNullOrEmpty(result))
{
//可能有代理
if(result.IndexOf(".")==-1)//没有"."肯定是非IPv4格式
result=null;
else
{
if(result.IndexOf(",")>=0)
{
//有",",估计多个代理。取第一个不是内网的IP。
result=result.Replace("","").Replace("'","").Replace(";","");
string[]temparyip=result.Split(',');
for(inti=0;i<temparyip.Length;i++)
{
if(IsIPAddress(temparyip[i]))
{
if(!temparyip[i].StartsWith("10.")&&!temparyip[i].StartsWith("192.168")&&!temparyip[i].StartsWith("172.16."))
{
result=temparyip[i];//找到不是内网的地址
break;
}
}
}
}
if(!IsIPAddress(result))//代理即是IP格式
{
result=null;//代理中的内容非IP,取IPk
}
}
}
}
else
{
result=HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if(string.IsNullOrEmpty(result))
{
result=HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if(string.IsNullOrEmpty(result))
{
result=HttpContext.Current.Request.UserHostAddress;
}
if(string.IsNullOrEmpty(result))
{
result="000.000.000.000";
}
returnresult;
}

Ⅸ 服务器端如何获取客户端的mac地址

放在服务器上当然获取不到,必须要在本地。
所以很多网站说为了安全,一般都说要安装什么插件之类,这些插件中,有的就包含了mac的插件。

阅读全文

与服务器获取客户端地址为0相关的资料

热点内容
哪个app听音乐最好 浏览:279
考研英语2真题pdf 浏览:697
烟台编程积木教育环境好不好 浏览:214
python优秀代码 浏览:620
androidtop命令 浏览:455
你平时怎么排解压力 浏览:68
表格中的文件夹怎样设置 浏览:476
em78单片机 浏览:960
splitjava空格 浏览:248
电脑怎么谷歌服务器地址 浏览:515
nx自定义工具启动宏命令 浏览:101
程序员怎么解决无法访问互联网 浏览:303
java访问本地文件 浏览:747
瓦斯琪服务器怎么用 浏览:22
安卓主题用什么app 浏览:747
修改服务器pci地址空间 浏览:321
程序员将来去哪里 浏览:966
虚幻5创建c无法编译 浏览:189
javaweb项目设计 浏览:407
国家反诈app紧急联系人怎么填 浏览:191