Попытка сканирования IP для получения доменного имени в Python с сокетом

1

Я пытаюсь отсканировать доменное имя из ip-адреса. Вот почему я взял данные из файла и разделил это, и изменил последний 3digit с помощью цикла. и проверки всех случайных ip. Но ничего не показывает. И есть действительный ip с доменом.

f = open('ip.txt', 'r')
r = f.readline()
f.close()
ips = r.split(".")
ipc = ips[0] + "." + ips[1] + "." + ips[2] + "."
for i in range(0, 256):
    ipm = ipc + str(i)
    ip = str('"' + ipm + '"')
    try:
        socket.gethostbyaddr(ip)
    except:
        pass
  • 1
    он ничего не показывает, потому что вы ничего не печатаете, и вы даже не записываете результат socket.gethostbyaddr в какую-то переменную ... Также вы не обрабатываете исключения каким-либо разумным способом ...
  • 1
    Кроме того, какова ваша реальная цель там? Вы узнаете мало информации об этом, так как не все IP-адреса имеют записи PTR (и вы, конечно, забываете об IPv6), и даже если они имеют, как вы думаете, как это относится к «доменному имени»? Может быть, вы спрашивали об имени хоста? Потому что в противном случае « я пытаюсь сканировать доменное имя с IP-адреса. » Не имеет смысла.
Теги:
dns
sockets
ip

1 ответ

1

Ваш отступ здесь не прав, попробуйте следующее:

for i in range(0,256):
    ipm=ipc+str(i)
    ip=str('"'+ipm+'"')
    try: 
        socket.gethostbyaddr(ip)
    except:
        pass

Изменение: Я также подозреваю, что вы можете просто сделать ip = str(ipm), не добавляя лишние двойные кавычки.

  • 0
    Там нет ошибки отступа, брат.
  • 0
    @ AndroWizard, может быть, я упомянул двойные кавычки?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню