精华内容
下载资源
问答
  • nodejs 如何获取对方的IP地址

    千次阅读 2015-11-22 22:19:51
    nodejs 如何获取对方的IP地址

    简单直接粗暴的方法: 

    var ip_info = request.headers[remoteip]||req.socket.remoteAddress;
    request为Http 请求。

    展开全文
  • 或许可以获取IP地址,但是如果对方是局域网内用了私有地址,但获取不同机子 IP地址很可能产生重复,这需要再用他外层路由器来确定(这能实现吗) 或许可以获取MAC地址,但我不知道这也能不能实现。 还是有...
  • java 如何获取对方的IP

    千次阅读 2012-07-03 09:48:14
    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。 但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理软件,用...

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。

    但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。

    如果使用了反向代理软件,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实IP.经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。当我们访问index.jsp/时,其实并不是我们浏览器真正访问到了服务器上的index.jsp文件,而是先由代理服务器去访问index.jsp ,代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问index.jsp的,所以index.jsp中通过request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。

    于是可得出获得客户端真实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; }

     可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值,究竟哪个才是真正的用户端的真实IP呢?答案是取X-Forwarded-For中第一个非unknown的有效IP字符串。如:X-Forwarded-For:192.168.1.110,192.168.1.120,192.168.1.130,192.168.1.100用户真实IP为:192.168.1.110

    展开全文
  • 上一章介绍了ICMP协议,网络排障工具:ping 和 tracert 技术详解。今天介绍下同属于网络层的ARP协议。一台主机要发送数据给另一台主机时,必须要知道目的主机的网络层地址(即IP...那么如何获取对方的mac地址呢?通...

    上一章介绍了ICMP协议,网络排障工具:ping 和 tracert 技术详解。今天介绍下同属于网络层的ARP协议

    一台主机要发送数据给另一台主机时,必须要知道目的主机的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的。

    IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。那么如何获取对方的mac地址呢?

    通过ARP(Address Resolution Protocol)协议可以根据IP地址获取对方的MAC地址

    正文

    1ARP协议工作原理:

    bae84b1bdcebec328f89753d0c8906bc.png

    如上图所示:

    主机A(ip为10.0.0.1)要和主机C(ip为10.0.0.3)通信,数据包经过主机A的封装后发给主机C,我们知道主机A封装数据时除了要知道对方的IP地址,还需要知道对方的MAC地址,这时候就需要借助ARP协议了。

    下面我们看下ARP是如何获取主机C的MAC地址的?

    1、ARP请求:

    主机A首先会去检查ARP缓存表(ARP缓存用来存放IP地址和MAC地址的关联信息)中是否存在主机C的MAC地址。

    本例中由于是第一次通信,主机A的ARP缓存表中没有主机C的MAC地址。

    这时主机A会发送ARP request报文(广播报文)来获取主机C的MAC地址。

    之前已经讲过广播的概念的,广播报文只会在广播域中传播,路由器可以隔离广播域。你知道以太网数据帧在网络中如何发送和接收的吗?一文带你搞懂它

    5c63a2c5417584dbdc4b360a47d60f7a.png

    ARP request报文封装在以太帧里。

    帧头中的源MAC地址为发送端主机A的MAC地址。此时,由于主机A不知道主机C的MAC地址,所以目的MAC地址为广播地址FF-FF-FF-FF-FF-FF。

    ARP request报文中包含源IP地址、目的IP地址、源MAC地址、目的MAC地址,其中目的MAC地址的值为0。

    ARP Request报文会在整个网络上传播,该网络中所有主机包括网关都会接收到此ARP request报文。网关将会阻止该报文发送到其他网络上。

    本例中主机B和主机C都会收到主机A发送的ARP广播请求报文。

    2、ARP应答:

    主机B收到主机A发送的ARP广播请求报文,查看目的IP不是自己会丢弃,但是会在自己的ARP缓存表中记录主机A的IP和MAC的映射关系,在主机B上通过命令arp -a 可以查询到;

    523bad9df6642d11c3f29d34d0cc09cd.png

    主机C发现目的IP是自己,会在自己的ARP缓存表中记录主机A的IP和MAC的映射关系,并会向主机A单播回应ARP Reply报文

    主机A收到主机C的回应报文后后会在自己的ARP缓存表中记录主机C的IP和MAC的映射关系,下次发送数据是就可以查询到主机C的MAC。

    af652658b7b541f5757050d945782859.png

    ARP Reply报文中的源协议地址是主机C自己的IP地址,目标协议地址是主机A的IP地址,目的MAC地址是主机A的MAC地址,源MAC地址是自己的MAC地址,同时Operation Code被设置为reply。

    ARP Reply报文通过单播传送。

    2ARP报文格式

    ARP的工作过程是通过ARP广播请求报文和ARP单播回应报文实现的,下面我们一起看下ARP报文的格式吧!

    e8863ab83442963d3c6db13475ecf2ac.png

    ARP报文中包含以下字段:

    1、Hardware Type:表示硬件地址类型,一般为以太网;

    2、Protocol Type:表示三层协议地址类型,一般为IP;

    3、Hardware Length和Protocol Length:为MAC地址和IP地址的长度,单位是字节;

    4、Operation Code:指定了ARP报文的类型,包括ARP request和ARP reply;

    5、Source Hardware Address:指的是发送ARP报文的设备MAC地址;

    6、Source Protocol Address:指的是发送ARP报文的设备IP地址;

    7、Destination Hardware Address:指的是接收者MAC地址,在ARP request报文中,该字段值为0;

    8、Destination Protocol Address:指的是指接收者的IP地址。

    3实战

    下面我们搭建拓扑,模拟下主机A和主机C的通信过程,在ensp模拟器下打开wireshark抓取下ARP请求和回应报文。

    1、主机A上ping 主机C ip 10.0.0.3。

    312961d35a1882104621fa5d399259d7.png

    2、查看抓包结果:

    c4585c4a86498f9ee096088370326833.png

    可以看到:抓取到了主机A发送的ARP广播请求报文、主机C回应的单播报文,以及ping的ICMP报文;

    3、报文分析:

    ARP请求报文格式:

    f5abb52bd952a11df733b1cf041f1448.png

    可以看到ARP请求报文中:

    1、Hardware Type为以太网

    2、Protocol Type为IP

    3、MAC地址为6字节,IP地址的长度为4字节

    4、Operation Code指定了ARP报文的类型为ARP request

    5、发送ARP报文的设备MAC地址为54-89-98-1F-3A-EA;

    6、发送ARP报文的设备IP地址为10.0.0.1;

    7、接收者MAC地址为ff-ff-ff-ff-ff-ff;

    8、接收者的IP地址为10.0.0.3

    ARP回应报文:

    bd1d534d9ac1a565481393c702210919.png

    可以看到ARP回应报文中:

    1、Hardware Type为以太网;

    2、Protocol Type为IP;

    3、MAC地址为6字节,IP地址的长度为4字节

    4、Operation Code指定了ARP报文的类型为ARP reply;

    5、发送ARP报文的设备MAC地址为54-89-98-DB-33-4E;

    6、发送ARP报文的设备IP地址为10.0.0.3;

    7、接收者MAC地址为54-89-98-1F-3A-EA;

    8、接收者的IP地址为10.0.0.1。

    总结

    本章主要介绍了ARP的原理和报文结构,知道了ARP是如何根据对方的IP获取对方的MAC地址实现网络通信的。

    展开全文
  • 上一章介绍了ICMP协议,网络排障工具:ping 和 tracert 技术详解。今天介绍下同属于网络层的ARP协议。...那么如何获取对方的mac地址呢? 通过ARP(Address Resolution Protocol)协议可以根据IP...

    上一章介绍了ICMP协议,网络排障工具:ping 和 tracert 技术详解。今天介绍下同属于网络层的ARP协议

     

    一台主机要发送数据给另一台主机时,必须要知道目的主机的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的。

     

    IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。那么如何获取对方的mac地址呢?

     

    通过ARP(Address Resolution Protocol)协议可以根据IP地址获取对方的MAC地址

     

    正文

     

     

    1

    ARP协议工作原理:

     

    如上图所示:

     

    主机A(ip为10.0.0.1)要和主机C(ip为10.0.0.3)通信,数据包经过主机A的封装后发给主机C,我们知道主机A封装数据时除了要知道对方的IP地址,还需要知道对方的MAC地址,这时候就需要借助ARP协议了。

     

    下面我们看下ARP是如何获取主机C的MAC地址的?

     

     

    1、ARP请求:

     

    主机A首先会去检查ARP缓存表(ARP缓存用来存放IP地址和MAC地址的关联信息)中是否存在主机C的MAC地址。

     

    本例中由于是第一次通信,主机A的ARP缓存表中没有主机C的MAC地址。

     

    这时主机A会发送ARP request报文(广播报文)来获取主机C的MAC地址。

     

    之前已经讲过广播的概念的,广播报文只会在广播域中传播,路由器可以隔离广播域。你知道以太网数据帧在网络中如何发送和接收的吗?一文带你搞懂它

     

     

     

    ARP request报文封装在以太帧里。

     

    帧头中的源MAC地址为发送端主机A的MAC地址。此时,由于主机A不知道主机C的MAC地址,所以目的MAC地址为广播地址FF-FF-FF-FF-FF-FF。

     

    ARP request报文中包含源IP地址、目的IP地址、源MAC地址、目的MAC地址,其中目的MAC地址的值为0。

     

    ARP Request报文会在整个网络上传播,该网络中所有主机包括网关都会接收到此ARP request报文。网关将会阻止该报文发送到其他网络上。

     

    本例中主机B和主机C都会收到主机A发送的ARP广播请求报文。

     

     

    2、ARP应答:

     

    主机B收到主机A发送的ARP广播请求报文,查看目的IP不是自己会丢弃,但是会在自己的ARP缓存表中记录主机A的IP和MAC的映射关系,在主机B上通过命令arp -a 可以查询到;

     

     

    主机C发现目的IP是自己,会在自己的ARP缓存表中记录主机A的IP和MAC的映射关系,并会向主机A单播回应ARP Reply报文

     

    主机A收到主机C的回应报文后后会在自己的ARP缓存表中记录主机C的IP和MAC的映射关系,下次发送数据是就可以查询到主机C的MAC。

     

     

    ARP Reply报文中的源协议地址是主机C自己的IP地址,目标协议地址是主机A的IP地址,目的MAC地址是主机A的MAC地址,源MAC地址是自己的MAC地址,同时Operation Code被设置为reply。

     

    ARP Reply报文通过单播传送。

     

    2

    ARP报文格式

     

    ARP的工作过程是通过ARP广播请求报文和ARP单播回应报文实现的,下面我们一起看下ARP报文的格式吧!

     

     

    ARP报文中包含以下字段:

     

    1、Hardware Type:表示硬件地址类型,一般为以太网;

    2、Protocol Type:表示三层协议地址类型,一般为IP;

    3、Hardware Length和Protocol Length:为MAC地址和IP地址的长度,单位是字节;

    4、Operation Code:指定了ARP报文的类型,包括ARP request和ARP reply;

    5、Source Hardware  Address:指的是发送ARP报文的设备MAC地址;

    6、Source Protocol Address:指的是发送ARP报文的设备IP地址;

    7、Destination Hardware Address:指的是接收者MAC地址,在ARP request报文中,该字段值为0;

    8、Destination Protocol Address:指的是指接收者的IP地址。

     

    3

    实战

     

    下面我们搭建拓扑,模拟下主机A和主机C的通信过程,在ensp模拟器下打开wireshark抓取下ARP请求和回应报文。

     

    1、主机A上ping 主机C ip 10.0.0.3。

     

     

    2、查看抓包结果:

     

     

    可以看到:抓取到了主机A发送的ARP广播请求报文、主机C回应的单播报文,以及ping的ICMP报文;

     

    3、报文分析:

     

    ARP请求报文格式:

     

     

    可以看到ARP请求报文中:

    1、Hardware Type为以太网

    2、Protocol Type为IP

    3、MAC地址为6字节,IP地址的长度为4字节

    4、Operation Code指定了ARP报文的类型为ARP request

    5、发送ARP报文的设备MAC地址为54-89-98-1F-3A-EA;

    6、发送ARP报文的设备IP地址为10.0.0.1;

    7、接收者MAC地址为ff-ff-ff-ff-ff-ff;

    8、接收者的IP地址为10.0.0.3

     

    ARP回应报文:

     

     

    可以看到ARP回应报文中:

    1、Hardware Type为以太网;

    2、Protocol Type为IP;

    3、MAC地址为6字节,IP地址的长度为4字节

    4、Operation Code指定了ARP报文的类型为ARP reply;

    5、发送ARP报文的设备MAC地址为54-89-98-DB-33-4E;

    6、发送ARP报文的设备IP地址为10.0.0.3;

    7、接收者MAC地址为54-89-98-1F-3A-EA;

    8、接收者的IP地址为10.0.0.1。

     

    总结

     

     

    本章主要介绍了ARP的原理和报文结构,知道了ARP是如何根据对方的IP获取对方的MAC地址实现网络通信的。

    展开全文
  • 上一章介绍了ICMP协议,网络排障工具:ping 和 tracert 技术详解。今天介绍下同属于网络层的ARP协议。一台主机要发送数据给另一台主机时,必须要知道目的主机的网络层地址(即IP...那么如何获取对方的mac地址呢?通...
  • 如何获取ADSL的IP地址

    2010-10-11 15:11:00
    如何获取ADSL用户的IP地址,头大啊,请高手解决, 我遇到了一个奇怪的问题,每次获取的是一样的,可我后来插入数据库的就不一样了。 数据库字段是不是有问题 ,还有编码什么的 应该没问题,...
  • 上一章介绍了ICMP协议,网络排障工具:ping 和 tracert 技术详解。今天介绍下同属于网络层的ARP协议。一台主机要发送数据给另一台主机时,必须要知道目的主机的网络层地址(即IP...那么如何获取对方的mac地址呢?通...
  • 那么对方的IP地址如何搜查得到呢?这样的问题你也许会嗤之以鼻,的确,查询对方计算机的IP地址,实在简单得不值得一提;可是,要让你列举出多种IP地址搜查方法时,你可能就感到勉为其难了。下面,本文就对如何快速...
  • 每次看见QQ上面能够显示对方的ip和地址让人觉得舒服。。...首先是如何获取对方的ip地址,方法很简单,如下: public String getIpAddr(HttpServletRequest request) { String ip = reque...
  • 每次看见QQ上面能够显示对方的ip和地址让人觉得舒服。...首先是如何获取对方的ip地址,方法很简单,如下: [code="java"] public String getIpAddr(HttpServletRequest request) { Stri...
  • 如何获取QQ/微信好友的IP地址

    千次阅读 2020-03-23 21:49:48
    通过监控网络通讯过程中的数据包,从而捕获QQ/微信好友的IP地址,这早已不是秘密,而这种方式依然有效。 在网络世界里,有了IP地址,就可以获取大概的地理位置。如果对方使用公司网络/家庭WiFi,定位IP基本是比较...
  • 如何获取对方精确位置

    千次阅读 2019-10-28 23:50:23
    2.或者通过给对方发送一个网页跳转功能,获取对方IP地址。 3.获取对方IP地址后,定位对方IP step1:打开www.ipplus360.com step2:输入IP地址。获取到大概位置(定位在10KM我感觉已经很高了)。 另利用经纬度...
  • 手机获取qq好友ip地址

    2020-08-11 14:35:08
    那么对方的IP地址如何搜查得到呢?这样的问题你也许会嗤之以鼻,的确,查询对方计算机的IP地址,实在简单得不值得一提;可是,要让你列举出多种IP地址搜查方法时,你可能就感到勉为其难了。下面,本文就对如何快速...
  • 之前在做项目时候主机IP地址、网关、DNS、子网掩码等都是公司或者对方直接给提供,但是如果我们自己想搭建一台虚拟机或者一台集群话,手头又没有IP地址,该肿么办呢?白慌,这里介绍一个小技巧,亲测是好使...
  • 获取对方IP的几种方法

    千次阅读 2009-08-31 11:39:00
    那么对方的IP地址如何搜查得到呢?这样的问题你也许会嗤之以鼻,的确,查询对方计算机的IP地址,实在简单得不值得一提;可是,要让你列举出多种IP地址搜查方法时,你可能就感到勉为其难了。下面,本文就对如何快速...
  • 其实我们想要实现根据ip地址,获取地理位置就是一个数据库搜集的过程,简单来说,只要更多的人去注册或者去查询等等方式,泄露自己的ip地址的真实信息,就会被收录进数据库,这样被查询时就会精准定位到真实地址,...
  • 什么是ARP协议?一台主机要发送数据给另一台主机时,必须要知道...那么如何获取对方的mac地址呢?通过ARP(Address Resolution Protocol)协议可以根据IP地址获取对方的MAC地址。如图所示:主机A(ip为10.0.0.1)...
  • 使用ping -i ip地址 例如已知地址为192.168.1.168。 那么使用ping -i 192.168.1.168,如果能ping通该计算机。就可以获得该计算机的名称 方法(2): 使用nbtstat -a 加对方IP查对方的主机名 例如nbtstat -a 192....
  • 查看对方IP地址

    千次阅读 2019-04-16 10:04:25
    网站能够统计浏览用户的IP地址,这些IP地址是如何获取到的呢,我们又能不能主动去获取他人的IP地址呢,方法其实有好多,针对最常见的用网站方式获取ip地址的方法,我将用maitube网站的列子举例(因为其它列子操作...
  • 对于服务器来说,在bind以后就可以调用getsockname来获取本地地址和端口,虽然这没有什么太多意义。getpeername只有在链接建立以后才调用,否则不能正确获得对方地址和端口,所以他参数描述字一般是链接描述字而...
  • 快速获取别人IP地址的4种方法

    万次阅读 多人点赞 2016-07-05 15:41:25
    那么对方的IP地址如何搜查得到呢?这样的问题你也许会嗤之以鼻,的确,查询对方计算机的IP地址,实在简单得不值得一提;可是,要让你列举出多种IP地址搜查方法时,你可能就感到勉为其难了。下面,本文就对如何快速、...
  • 之前在做项目时候主机IP地址、网关、DNS、子网掩码等都是公司或者对方直接给提供,但是如果我们自己想搭建一台虚拟机或者一台集群话,手头又没有IP地址,该肿么办呢?白慌,这里介绍一个小技巧,亲测是好使...
  • 假设主机A需要与主机B进行通信,如果A的mac缓存表上没有B对应的MAC地址,则可以进行ARP广播,发送ARP请求报文,报文中包含A、B的IP地址,同意网络内的主机收到报文后,如IP地址符合,回复报文包含主机的MAC地址。...
  • 之前在做项目时候主机IP地址、网关、DNS、子网掩码等都是公司或者对方直接给提供,但是如果我们自己想搭建一台虚拟机或者一台集群话,手头又没有IP地址,该肿么办呢?白慌,这里介绍一个小技巧,亲测是好使...
  •  通过IP地址查找MAC地址方法相信很多读者都已经掌握,我们只需要在PING对方目的地址后执行arp -a查看即可,当然也可以通过一些专门局域网扫描工具完成查询网内各个网络客户端信息目的。(如图1) 7 ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 111
精华内容 44
关键字:

如何获取对方的ip地址