BASH端口敲与组合

标签 bash combinations

我正在尝试使用 bash 生成具有 {1..3} 所有可能组合的端口碰撞。在过去的 48 小时里,我一直在努力寻找答案,并最终寻求一些帮助。

我当前的代码如下:

#!/bin/bash
HOST=$1
COUNTER=0
while [ COUNTER -lt 100 ];do
    shift
    for PORT in "$@"
    do
        nmap -Pn --host_timeout 100 --max-retries 0 -p $PORT $HOST
let COUNTER=COUNTER+1
    done
done

#Syntax knock.sh x.x.x.x 1 2 3

最佳答案

不确定你为什么有这个COUNTER,但据我了解你想要什么,你可能:

  • 错位的 shift,
  • 在您的 while 条件中误用了 [](测试),
  • 错位 让 COUNTER=COUNTER+1

用最少的改动快速修复:

#!/bin/bash
HOST=$1
shift
COUNTER=0
while [ $COUNTER -lt 100 ]; do
    for PORT in "$@"
    do
        nmap -Pn --host_timeout 100 --max-retries 0 -p $PORT $HOST
    done
    let COUNTER=COUNTER+1
done

就个人而言,我会写:

HOST=$1
shift
for (( COUNTER = 0; COUNTER < 100; COUNTER += 1 )); do
  for PORT in "$@"; do
    nmap -Pn --host_timeout 100 --max-retries 0 -p $PORT $HOST
  done
done

我觉得更容易理解。品味问题。关于您的编码风格的评论:您可能应该尝试保持一致,并在半列(您的 while 循环)或换行符(您的 for 循环)之间进行选择。当然,正确缩进您的代码。这真的很有帮助。

关于BASH端口敲与组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32810683/

相关文章:

java - 如何创建字符串的所有元音组合并将每个组合添加到 ArrayList

arrays - 用 DI 序列排列排列

macros - Julia - n 嵌套循环

bash - AWS S3 : Remove Object Prefix From Thousands of Files in Complex Directory Structure

linux - Bash 脚本在从终端启动时可以正常工作,但在 .bashrc 调用时却无法正常工作

java - 寻找可用于一组数字排列的最小增量

python - 在 python 中使用两个 for 循环

bash - 将变量传递给 psql 脚本

linux - 如何按顺序提取文本并用作 bash 脚本中的输入

bash - 端口监听使用/dev/tcp