Как проверить объем ip для обратных dns?

Я предлагаю вам сначала удалить все установки nodejs, а затем выполнить сценарий ниже, как только вы редактируете нужную версию nodejs, и родительский каталог установки

см. все доступные версии nodejs

https: // nodejs.org/dist/

ниже сценарий позволит вам установить любую из этих версий nodejs в Linux или OSX

#!/bin/bash

#     usage :
#
#     edit two vars in below :  NODE_VER  and  CODE_PARENT_DIR
#
# ... execute this script as yourself unless you choose a root owned value for var CODE_PARENT_DIR
#     whichever id you execute this as determines the id you will issue npm commands as :  npm install -g foo-bar
#
#     NOTE - nodejs comes bundled with npm ... so no need to do separate npm install
#            this scripts runs fine on linux or OSX

# ...  copy all the lines starting here  .. top of copy  ....   and ending ... end of copy  ...
#      and paste into your ~/.bashrc file so proper env vars get set 

# ............... top of copy  ........................  install_node.sh

# export NODE_VER=v7.2.0  # see available versions at https://nodejs.org/dist/
# export NODE_VER=v8.5.0  # edit this line next time you need to update nodejs  
export NODE_VER=v9.3.0  # edit this line next time you need to update nodejs

# ...  pick parent dir of nodejs install  ... comment out or remove ONE of below
# export CODE_PARENT_DIR=/opt/code  # root owned dir ... requires you to sudo prior to npm install going forward
export CODE_PARENT_DIR=${HOME}    # RECOMMENDED execute as yourself including npm install

# ......... following env vars are OK no edits needed ... only ever need to edit above vars

curr_OS=$( uname )

echo curr_OS $curr_OS

if [[ "${curr_OS}" == "Darwin" ]]; then

    OS_ARCH=darwin-x64

elif [[ "${curr_OS}" == "Linux" ]]; then

    OS_ARCH=linux-x64
else
    echo "ERROR - failed to recognize OS $curr_OS"
    exit 5
fi

if [[ -z ${CODE_PARENT_DIR} ]]; then

    echo "ERROR - failed to see env var CODE_PARENT_DIR"
    exit 5
fi

export NODE_CODEDIR=${CODE_PARENT_DIR}/nodejs
export COMSUFFIX=tar.gz
export NODE_NAME=node-${NODE_VER}
export NODE_PARENT=${NODE_CODEDIR}/${NODE_NAME}-${OS_ARCH} 

export PATH=${NODE_PARENT}/bin:${PATH}
export NODE_PATH=${NODE_PARENT}/lib/node_modules

# ............... end of copy  ........................  install_node.sh

# copy and paste above from ... top of copy ... to here into your file ~/.bashrc   

echo
echo "NODE_CODEDIR $NODE_CODEDIR<--"
echo

echo "mkdir -p ${NODE_CODEDIR}"
echo
      mkdir -p ${NODE_CODEDIR}
echo

echo "cd ${NODE_CODEDIR}"
      cd ${NODE_CODEDIR}
echo

# this is compiled code NOT source

[ -f ${NODE_NAME}-${OS_ARCH}.${COMSUFFIX} ] && rm ${NODE_NAME}-${OS_ARCH}.${COMSUFFIX} # if file exists remove

echo "wget -q --show-progress https://nodejs.org/download/release/${NODE_VER}/${NODE_NAME}-${OS_ARCH}.${COMSUFFIX}"
      wget -q --show-progress https://nodejs.org/download/release/${NODE_VER}/${NODE_NAME}-${OS_ARCH}.${COMSUFFIX}
echo

echo "tar -C ${NODE_CODEDIR} -xf ${NODE_NAME}-${OS_ARCH}.${COMSUFFIX}"
      tar -C ${NODE_CODEDIR} -xf ${NODE_NAME}-${OS_ARCH}.${COMSUFFIX}
echo

[ -f ${NODE_NAME}-${OS_ARCH}.${COMSUFFIX} ] && rm ${NODE_NAME}-${OS_ARCH}.${COMSUFFIX} # if file exists remove

# ...........  done ........... #

which node

node --version

# ....  bottom of file   install_node.sh
1
задан 17 August 2016 в 13:13

3 ответа

Вот быстрый и грязный один лайнер: Содержание ip-addresses.txt:

$ cat ip-addresses.txt
    1.2.3.4
    1.1.1.1
    222.222.222.222
    23.12.34.56
    8.8.8.8
    208.67.222.220

Замените txt вашим файлом, который содержит адреса, разделенные символами новой строки:

$ cat ip-addresses.txt | xargs -I % bash -c 'echo "%:$(dig -x % +short)"' >> dig-output.txt

Если вы добавите к dig-output.txt, как указано выше, содержимое этого файла будет выглядеть следующим образом, если обратный поиск в DNS будет успешным, IP:NAME, если нет, IP:(NULL)

$ cat dig-output.txt
1.2.3.4:
1.1.1.1:
222.222.222.222:
23.12.34.56:a23-12-34-56.deploy.static.akamaitechnologies.com.
8.8.8.8:google-public-dns-a.google.com.
208.67.222.220:resolver3.opendns.com.
[d3 ] Если IP-адреса поступают из другого процесса, вы можете напрямую подключиться к xargs.

Изменить: если у вас должно быть слово, например null (вдохновленное @Serg) в случае сбоя поиска, вы можете используйте следующую команду:

$ cat ip-addresses.txt | xargs -I % bash -c '{ query=$(dig -x % +short); if [ -z $query ]; then query=null;fi; echo %:$query; }'
cat ip-addresses.txt # Распечатайте IP-адреса до STDOUT. Если вы не хотите cat из файла, вы можете напрямую подключиться к другому процессу, например command | xargs ... xargs -I % bash -c # Возьмите каждую строку слева от канала, используйте % в качестве заполнителя, запустите команду bash, которая следует в одинарных кавычках dig IP-адрес, который исходит от заполнителя % на xargs, присваивает переменной query. Если результатом является null (нулевая длина), присвойте строке «null» слово переменной query, затем напечатайте как IP:result

Демонстрация:

$ cat ip-addresses.txt | xargs -I % bash -c '{ query=$(dig -x % +short); if [ -z $query ]; then query=null;fi; echo %:$query; }'
1.2.3.4:null
1.1.1.1:null
222.222.222.222:null
23.12.34.56:a23-12-34-56.deploy.static.akamaitechnologies.com.
8.8.8.8:google-public-dns-a.google.com.
208.67.222.220:resolver3.opendns.com.
3
ответ дан 23 May 2018 в 07:04
  • 1
    Как я могу экспортировать результаты? – Yen Deng 17 August 2016 в 14:50
  • 2
    Вы собираетесь сохранить файл? – sdkks 17 August 2016 в 14:50
  • 3
    Да, если это возможно – Yen Deng 17 August 2016 в 14:51
  • 4
    Просто добавьте >> my-log-filename.txt в конец команды. – sdkks 17 August 2016 в 14:53
  • 5
    @YenDeng Я отредактировал свой ответ и исправил некоторые вещи. Теперь может быть полезно. – sdkks 17 August 2016 в 17:39

Вдохновленный примером оболочки, показанным в другом ответе, я решил, что версия Perl мне подходит лучше, поэтому я создал этот файл «batch_dns_by_ip.pl». Вы поместите список IP-адресов в текстовый файл, который будет транслироваться в программу.

Код должен выглядеть так, и вы захотите сделать исполняемый файл:

#!/usr/bin/perl
use strict;
my @domains;
my $address;
while (<>)
{
        chomp;
        $address = $_;
        $address =~ s/ *//g;
        @domains = ();
        @domains=`dig -x "$address" +short`;
        chomp(@domains);
        if ("$domains[0]" eq "")
        {
                 $domains[0] = "NULL";
        }
        printf("addr: %15s names: %s", $address, $domains[0]);
        if ("$domains[1]" eq "")
        {
                print "\n";
        }
        else
        {
                printf(", %s\n", $domains[1]);
        }
}

Запуск может выглядеть так:

$ cat myips | ./batch_dns_by_ip.pl
addr:  216.58.219.238 names: lga25s41-in-f14.1e100.net., lga25s41-in-f238.1e100.net.
addr:  151.101.129.69 names: NULL
addr:         8.8.8.8 names: google-public-dns-a.google.com.
addr:     10.49.11.62 names: nyalbdnsvip01.miscny.nyenet., nyalbcwgbvip01-vlan401.miscny.nyenet.
addr:  69.172.201.153 names: NULL

Надеюсь, что это поможет!

1
ответ дан 23 May 2018 в 07:04
  • 1
    Это работает, но обратите внимание, что входной файл должен иметь каждый IP-адрес в отдельной отдельной строке. – devius 21 February 2018 в 15:07

nmap

Вы можете просто

 nmap -R -sL -Pn 1.2.3.0/24 | grep '('
-n/-R Никогда не выполнять DNS-разрешение / Всегда разрешать [по умолчанию: иногда] -sL List Scan - просто указать цели для сканирования -Pn Обработать все хосты как онлайн - пропустить хост-открытие. Удалите это, чтобы получить ответ на ping.

grep оставляют только разрешенные обратные DNS и некоторые полезные строки.

Добавьте --dns-servers x.x.x.x, чтобы использовать определенный DNS-сервер.

0
ответ дан 23 May 2018 в 07:04

Другие вопросы по тегам:

Похожие вопросы: