- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
import socket
print('Please wait... i think ;)')
#port = 443
a = range(200)
b = list(a)
hosts = ['mrim'+str(iter_host)+'.mail.ru' for iter_host in b]
host_list = []
ix = 0
for host in hosts:
try:
host_list.append(socket.gethostbyname_ex(host))
sl=[('IP: ',hostl[2],' Host: ',hostl[0]) for hostl in host_list]
except socket.error:
pass
while host_list != []:
try:
print(sl[ix])
ix += 1
except IndexError:
break
print('Done! Good luck ;)')
waiting = input() #for mustdie
Кхм, ты хочешь сказать что знаешь про генераторы и исключения, но не знаешь про цикл "for item in iterable"?
Не верю.
Я бы написал так, вот только один фиг mrim*.mail.ru не резолвится.
Резолвится только mrim.mail.ru
with open("filename.txt", "wt") as f:
....
да поправь print на f.write('IP: {ip} Host: {host}\n'.format(ip=ip, host=host))
минус - значит код либо нормальный, либо баян, либо выглядит искуственно, как выхлоп кодо-генератора или попытка сделать нарочито плохо.
плюс - значит код прекрасен в своем уродстве.
Ну и стадный эффект никто не отменял...
Equivalent to eval(raw_input(prompt)). It expects a valid Python expression as input; if the input is not syntactically valid, a SyntaxError will be raised.
Если надо ждать именно нажатия клавиши, то можно залезть в дебри (вроде msvcrt.getwch() под винду или библиотеки curses).
А вообще я такие вещи стараюсь по возможности возложить на шелл.
Все равно потом во многих случаях требуется вызывать скрипт в пакетном режиме с перенаправлением, и все эти ожидания пользовательского ввода будут только мешать.
Нафига так извратились во втором я сам не знаю.
Молоца.
это таки самий кошегний способ, да?
try:
print(sl[ix])
ix += 1
except IndexError:
break
убило просто