使用地址和端口Bash ping服务器并获取简短信息

时间:2016-10-20 16:52:13

标签: bash networking ip port netcat

如何通过ip和端口连接到服务器,并获取有关它的简短信息? 我尝试使用netcatcurl进行此操作,但信息太长。我也试过使用telnet,但对我来说这不是一个好方法。 我有一个脚本连接到指定端口上的某些地址,如果它已连接,我想显示有关它的简短信息。 可能吗?有没有其他方法可以解决这个问题?

IP地址不同。它们可以是http,mysql,ssl等。

我附加了一个带连接功能的代码:

if nc -w 10 -z $1 $i; then  
        printf "\n$1:$i - Port is open\n\nSERVER INFO:\n";  
        printf "\n$(curl -IL $1)\n";        
    else
        printf "\n$1:$i - Port is closed\n"
fi;

修改 我希望获得服务器响应的示例

{IP number}: ssh - OpenSSH 6.0pl1, http - apache 1.3.67, https - httpd 2.0.57

1 个答案:

答案 0 :(得分:0)

你非常接近。您可以像在脚本中一样包含主机。

for port in $(seq 21 23); do
   out=$(nc -w 1 -q 1 localhost $port)
   echo port ${port}: $out
done

#port 21:
#port 22: SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.7
#port 23: