1、添加域名解析工具类
import java.net.InetAddress; import java.net.UnknownHostException; /** * 域名解析工具类 * @author lh * */ public class DomainNameUtil { private static final String[] URL_PREFIX = {"http://", "https://"}; private static final String DOMAIN_SEPARATOR = "/"; public static String getUrlIp(String url){ String domainName = null; for (String up : URL_PREFIX) { if(url.startsWith(up)){ domainName = url.substring(up.length()); domainName = domainName.substring(0, domainName.indexOf(DOMAIN_SEPARATOR)); return getDomainIp(domainName); } } return ""; } public static String getDomainIp(String domainName) { try { InetAddress myServer = InetAddress.getByName(domainName); return myServer.getHostAddress(); } catch (UnknownHostException e) { } return ""; } }
2、添加IP解析工具类
import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.servlet.http.HttpServletRequest; public class IpUtil { /** * 从url中分析出hostIP<br/> * @param url * @author lh * @return */ public static String getIpFromUrl(String url) { String host = ""; // 判断是否为空 if (url == null || "".equals(url.trim())) { return host; } Pattern p = Pattern.compile("(?<=//|)((\\w)+\\.)+\\w+"); Matcher matcher = p.matcher(url); if (matcher.find()) { return matcher.group(); } return DomainNameUtil.getUrlIp(url); } /** * 取得请求客户端的IP(用户IP) * @param request * @return */ public static String getRemortIP(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("X-Real-IP"); } 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(); } if (ip != null && ip.length() > 0) { String[] ipArray = ip.split(","); if (ipArray != null && ipArray.length > 1) { return ipArray[0]; } return ip; } return ""; } }
3、取得http请求对应的网站IP
String url = StringUtils.isEmpty(request.getHeader("referer"))?request.getHeader("origin"):request.getHeader("referer"); String ipAddress = IpUtil.getIpFromUrl(url);
相关推荐
例如,如果调用`<%=cip("219.16.73.120")%>`,将会返回这个IP地址对应的整数值。这种转换在某些特定场景下非常有用,比如在数据库中存储IP地址,或者进行IP地址的数学运算。 总结来说,ASP中的`Userip()`函数用于...
类库可能内置了与这些服务的接口,通过IP地址查询到对应的国家、城市等地理信息。这需要处理网络请求和解析返回的数据。 再者,浏览器信息的获取则主要分析`HTTP_USER_AGENT`头,这个头包含了用户使用的浏览器类型...
1. **HTTP请求**: 可以向一些提供公共IP查询服务的网站(如`http://checkip.dyndns.org`)发送GET请求,然后解析返回的HTML内容,提取出IP地址。 2. **DNS反向查询**: 通过查询DNS服务器,反向查找设备的主机名,...
更可靠的方法是通过 AJAX 向第三方服务(如新浪 IP 库 API)发送请求,获取客户端 IP 地址。 2. **IP 地址解析**:将获取的 IP 地址输入到新浪 IP 库 API,得到该 IP 地址对应的地理位置信息。API 返回的数据可能...
用ARP向网络全体成员询问**:当发送端需要发送数据给特定IP地址的目标时,会使用地址解析协议(ARP)来查询该IP地址对应的MAC地址。 - **2.6.3. 记住调查过一次的地址**:ARP缓存记录了最近查询过的IP-MAC地址映射...
当此 MAC 地址的客户端申请 DHCP 地址时,服务器依照客户端 MAC 地址寻觅到对应的固定 IP 地址分派给客户端。 * 自动分派地址:为第一次连接到网络的某些主机分派固定 IP 地址,该地址将长期由该主机利用。 * 动态...
当我们在浏览器中输入一个域名时,电脑会首先查找本地DNS缓存,如果找到对应的IP地址,则直接进行连接。如果没有,就会向配置的DNS服务器发起查询请求。一般情况下,DNS查询分为两种类型:正向查询(从域名到IP)和...
然后,使用SNMP库的函数发送GET请求,获取对应的值,这个值就是MAC地址的字符串表示。 每种方法都有其优缺点。WinPCap库提供强大的数据包捕获功能,但可能需要额外安装;Windows API简单易用,但只能在Windows环境...
假如 A 要向 B 发送数据,已知目的 IP,那么 A 可以通过子网掩码取得网络地址,判断目的 IP 与自己是否在同一网段。如果在同一网段,但不知道转发数据所需要的 MAC 地址,A 就发送一个 ARP 请求广播,B 返回其 MAC ...
如果目的IP地址不在同一网段,那么A要实现和B的通信,在流缓存条目中没有对应MAC地址条目,就将第一个正常数据包发送向缺省网关, 由此可以看出对于不是同一子网的数据,最先在MAC表中放的是缺省网关的MAC地址;...
那就是arp高速缓存中IP地址和MAC地址的一个映射关系,在以太网中,数据传递靠的是MAC,而并不是IP地址。其实在这背后就隐藏着arp的秘密。你一定会问,网络上这么多计算机,A是怎么找到B的?那么我们就来分析一下细节...
在计算机网络中,ARP(Address Resolution Protocol)协议用于将IP地址解析为对应的物理地址,以便数据包能在局域网内正确传输。在渗透测试中,ARP扫描被用来识别网络上的活动主机、检测ARP欺骗或者执行中间人攻击。...
然后,在 IIS 界面中进行少许的配置,选择网站标签,因为服务器是处在公司的内部局域网中,因此 IP 地址使用本地 IP,端口设置成 80。 在选择 “主目录”标签时,因为项目的所有文件在本台服务器上,所以内容的来源...
ARP欺骗成功后,嗅探到对方发出的DNS请求数据包,分析数据包取得ID和端口号后,向目标发送自己构造好的一个DNS返回包,对方收到DNS应答包后,发现ID和端口号全部正确,即把返回数据包中的域名和对应的IP地址保存进...
AMR编码是一种自适应多速率编码,根据传输信道的实际情况,调整编码模式、速率和纠错码位数来保证语音质量,在数据压缩和容错上面取得平衡。一般语音质量越高抗干扰能力越弱。在GSM网络,基站、基站控制器可根据网络...
易语言提供了几个关键的网络通讯函数,如“创建网络通讯_”,这个函数用于初始化网络连接,它需要指定通讯协议(如TCP或UDP)以及服务器的IP地址和端口号。"网络通讯启动_"函数用于开启网络通讯服务,确保后续的网络...
1. **DNS 解析**:浏览器将 URL 提交给 DNS 服务器进行域名解析,找到对应的 IP 地址。 2. **TCP 握手**:浏览器通过 IP 地址与服务器建立 TCP 连接,完成三次握手过程。 - 客户端发送连接请求。 - 服务器回应确认...
nginx可以配置多个虚拟主机,每个虚拟主机可以对应一个独立的域名或IP地址,可以实现多个网站共享同一个IP地址和端口号。 https负载均衡 nginx可以配置https负载均衡,可以将https请求分配到多个服务器上,提高...
在客户端,当使用了控件的Connect方法后,远程计算机的IP地址就赋给了RemoteHostIP属性,而在服务器端,当ConnectRequest事件后,远程计算机(客户端)的IP地址就赋给了这个属性。如果使用的是UDP协议那么当Data...
2. 发送至DNS服务器并获得域名对应的WEB服务器IP地址 3. 与WEB服务器建立TCP连接 4. 服务器的永久重定向响应 5. 浏览器跟踪重定向地址 6. 服务器处理请求 7. 服务器返回一个HTTP响应 8. 浏览器显示HTML 9. 浏览器...