前に、同じ記事を書いたが、なんかubuntuをアップグレードした影響なのか、ちょっと挙動が変わった。
前は、標準入力に渡してあげると、順次変換が実行されていたのだが、今は、まとめて結果が表示される。
多少遅くても、実行時眺めていたかったので、それならpythonで作ればいいやんと思ってとてつもなくと汚く書いた。汚い!!!
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #!/usr/bin/env python import sys import socket if hasattr(socket, 'setdefaulttimeout'):     socket.setdefaulttimeout(1) def line_get_host(line,before_lines, before_host):     lines = line.split(' ')     before = before_lines.split(' ')     if (lines[0] != before[0]):         try:             host = socket.gethostbyaddr(lines[0])[0]         except:             host = lines[0]     else:         host = before_host     lines[0] = host     new_lines = " ".join(lines)     return new_lines, host if __name__ == '__main__':     argvs = sys.argv     argvc = len(argvs)     if ( argvc == 2):         of = open(argvs[1], 'r')     else:         of = sys.stdin     before_line = ""     before_host = ""     for l in sys.stdin:         l = l.rstrip('rn')         ret = line_get_host(l,before_line, before_host),         print ret[0][0],          sys.stdout.flush()         before_line = l         before_host = ret[0][1] | 
ファイル名を渡すか、標準入力で渡すかのみです。
| 1 2 | sys.stdout.flush()を書かないと、オリジナル版と同じように、 まとめ表示になってしまって、結局同じかい!とツッコんでしまった。 | 
| 1 | $ tail -50 access_log | logresolve.py | 
オリジナルも同じだが、逆引き出来ない時の、タイムアウト時間がちょっと長くて
こっちでは短くしたかったのだが、結局面倒で(実力が無くて)やめた。
日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)