import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; import java.io.InputStream; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; public class ConnectionUtils { private static final Logger LOGGER = LoggerFactory.getLogger(ConnectionUtils.class); private static final int TIMEOUT = 3000; public static void main(String[] args) { System.out.println(isReachable("192.168.43.103")); System.out.println(isConnectable("192.168.43.103", 8081)); } public static boolean isReachable(String ip) { if (StringUtils.isBlank(ip)) { return false; } try { return InetAddress.getByName(ip).isReachable(TIMEOUT); } catch (Exception e) { LOGGER.info("isReachable({}) encoutered exception :{}", ip, e); } return false; } public static boolean isConnectable(String ip, int port) { if (StringUtils.isBlank(ip) || port < 0) { return false; } Socket socket = new Socket(); InputStream inputStream = null; try { socket.setSoTimeout(TIMEOUT); socket.connect(new InetSocketAddress(ip, port)); inputStream = socket.getInputStream(); byte[] b = new byte[1024]; int size; while (true) { size = inputStream.read(b); if (-1 == size) { break; } } } catch (Exception e) { LOGGER.info("isConnectable({},{}) encoutered exception :{}", ip, port, e); String message = e.getMessage(); System.out.println(message); if (StringUtils.isNotBlank(message) && (message.lastIndexOf("Connection refused") != -1 || message.lastIndexOf("Connection timed out") != -1)) { return false; } } finally { try { socket.close(); if (inputStream != null) { inputStream.close(); } } catch (IOException e) { } } return true; } }
相关推荐
下面将详细介绍如何通过Socket连接判断网络端口是否可达,并以Android为例进行讲解。 首先,了解Socket的基本概念。Socket是应用层与传输层之间的一个接口,它允许应用程序通过TCP/IP协议进行数据传输。在Java中,`...
就是一个判断本机与某个IP地址、某个电脑是否连通,从而可以判断本机是否在某个网段上,也可以通过ping外网的地址来判断本机是否连网,也可以用来检测某个网站是否还存在可以访问。
在易语言判断端口开放源码中,开发者通常会结合这些函数编写一段代码,首先创建网络通讯对象,然后尝试连接目标IP和端口,根据连接结果判断端口是否开放,最后关闭网络连接。这种方法简单有效,适用于大多数情况。 ...
1. **IP地址扫描**:通过发送ICMP(Internet Control Message Protocol)回显请求(ping命令)或者TCP/UDP的连接请求,来判断IP地址是否可达。易语言提供了相应的网络库函数,如`发送ICMP请求`或`建立TCP连接`,用于...
在C#编程中,检测一个远程或本地端口是否打开是一项常见的网络编程任务,尤其在进行服务器连接或者网络通信时非常关键。这个任务通常通过TCP(传输控制协议)来实现,因为TCP是一种面向连接的、可靠的协议,可以确保...
下载并运行"本机IP端口查看器"的可执行文件"aports.exe",界面将自动显示当前本机的端口连接情况。用户可以通过过滤、排序功能快速定位感兴趣的信息。此外,一些高级功能如导出报告、定时扫描等,可以帮助进行更深度...
这个任务可以通过多种方法实现,其中一种常用的方法就是利用 Telnet 协议来检查 IP 地址和端口是否可达。下面我们将详细介绍如何在Java中实现这个功能。 首先,我们需要了解 Telnet 是什么。Telnet 是一种协议,...
IP端口探测器则能够绕过这种限制,通过TCP或UDP协议主动发起连接尝试,从而判断目标IP是否在线以及开放了哪些端口。 端口是网络通信的通道,不同的服务通常会绑定到特定的端口上。例如,HTTP服务通常使用80端口,...
本项目利用C#编程语言实现了这些功能,并且能够快速判断端口是否开放,这对于网络调试、性能优化以及故障排查具有极大的帮助。 首先,我们来详细探讨Tracert功能的实现。Tracert(也称为traceroute)是一种网络诊断...
IP段端口扫描是网络安全领域中的一个重要概念,它主要用于检测特定IP地址范围内的网络设备开放了哪些服务端口。在互联网上,每个设备都有一个唯一的IP地址,而端口则是设备上运行的服务与外界通信的通道。端口扫描是...
1. **ping命令**:最基础的网络连通性测试,用于判断IP地址是否可达,但ping命令不检查端口状态。 2. **TCP/UDP连接测试**:通过telnet或nc(netcat)命令尝试与目标端口建立连接,如果连接成功,说明端口开放;反之...
在IT领域,网络管理和安全是至关重要的部分,而服务器IP端口扫描工具则是这一环节中的重要工具。IP端口扫描是网络安全评估、故障排查和系统维护的重要手段,它可以帮助我们了解网络服务的状态,发现潜在的安全漏洞,...
IP端口扫描的工作原理通常是通过发送TCP或UDP协议的数据包到目标IP地址的各个端口,然后根据返回的响应(如果有的话)判断该端口是否开放。扫描过程通常包括以下几个步骤: 1. **初始化**: 设置目标IP地址范围和要...
【易语言IP段端口扫描源码】是一个用于网络扫描的程序,主要功能是检查指定的IP地址范围内的端口是否开放。在IT领域,端口扫描是网络安全和系统管理员常用的工具,它可以帮助识别网络上的服务、漏洞以及潜在的安全...
在Android开发中,验证IP地址和端口号是网络通信中不可或缺的一环,确保输入的数据格式正确,能够有效地防止错误的网络请求。正则表达式是一种强大的文本处理工具,可以用来匹配、查找、替换等操作,尤其适用于数据...
IP端口开放扫描工具的工作原理是通过发送特定的网络请求(如TCP SYN或UDP数据包)到目标IP地址的各个端口,然后根据返回的响应来判断端口是否开放。如果目标机器响应,说明该端口是开放的;如果没有任何响应或者收到...
总的来说,端口扫描是网络管理与安全检查的重要手段,"Aaron指定IP端口扫描"作为一款便捷的工具,为用户提供了直观、高效的端口检测方式。正确理解和使用这样的工具,将有助于我们更好地维护网络安全,防止潜在的...
5. **处理IP和端口信息**:提取到的IP地址和端口号可以用于识别数据的来源或目的地,也可以用于进一步的网络操作,比如判断是否为合法的连接请求,或者进行多线程处理等。 6. **关闭套接字**:完成通信后,记得使用...
在C++编程中,检测端口是否被占用是网络编程中的常见需求,特别是在服务器开发或者客户端连接时,确保端口可用性至关重要。本教程将详细解释如何使用C++实现这一功能,主要涉及TCP协议和系统调用。 首先,我们要...
这可以通过网络扫描工具完成,这些工具发送数据包到目标IP并根据收到的响应判断设备是否在线。活动IP意味着设备已开机并连接到了网络。 3. **开放端口**:端口是计算机网络中用于通信的逻辑通道,每个端口号对应一...