python多程式檢查埠並寫日誌
版權宣告:本文可能為博主原創文章,若標明出處可隨便轉載。 https://blog.csdn.net/Jailman/article/details/77573916
#!C:Python27python.exe
#coding: utf-8
from multiprocessing import Pool
import socket
socket.setdefaulttimeout(10)
#################################################################
import ctypes
STD_INPUT_HANDLE = -10
STD_OUTPUT_HANDLE = -11
STD_ERROR_HANDLE = -12
FOREGROUND_BLACK = 0x0
FOREGROUND_BLUE = 0x01 # text color contains blue.
FOREGROUND_GREEN = 0x02 # text color contains green.
FOREGROUND_RED = 0x04 # text color contains red.
FOREGROUND_INTENSITY = 0x08 # text color is intensified.
BACKGROUND_BLUE = 0x10 # background color contains blue.
BACKGROUND_GREEN = 0x20 # background color contains green.
BACKGROUND_RED = 0x40 # background color contains red.
BACKGROUND_INTENSITY = 0x80 # background color is intensified.
class Color:
````` See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_api_reference.asp
for information on Windows APIs.```
std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
def set_cmd_color(self, color, handle=std_out_handle):
"""(color) -> bit
Example: set_cmd_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY)
"""
bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)
return bool
def reset_color(self):
self.set_cmd_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)
def print_red_text(self, print_text):
self.set_cmd_color(FOREGROUND_RED | FOREGROUND_INTENSITY)
print print_text
self.reset_color()
def print_green_text(self, print_text):
self.set_cmd_color(FOREGROUND_GREEN | FOREGROUND_INTENSITY)
print print_text
self.reset_color()
def print_blue_text(self, print_text):
self.set_cmd_color(FOREGROUND_BLUE | FOREGROUND_INTENSITY)
print print_text
self.reset_color()
def print_red_text_with_blue_bg(self, print_text):
self.set_cmd_color(FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_BLUE | BACKGROUND_INTENSITY)
print print_text
self.reset_color()
clr = Color()
# clr.print_red_text(`red`)
# clr.print_green_text(`green`)
# clr.print_blue_text(`blue`)
# clr.print_red_text_with_blue_bg(`background`)
#################################################################
def check_server(address, port):
s = socket.socket()
# print "Attempting to connect to %s on port %s" % (address, port)
try:
port = int(port)
s.connect((address, port))
# print "Connected to %s on port %s" % (address, port)
return True
except socket.error, e:
clr.print_red_text("Connection to %s on port %s failed: %s" % (address, port, e))
return False
def single_func(i):
with open(`proxy.txt`) as f:
lines = f.readlines()
if lines[i] != ``:
ip = lines[i].split(`:`)[0].strip()
port = lines[i].split(`:`)[1].strip()
if check_server(ip, port):
msg = "Connected to %s on port %s" % (ip, port)
clr.print_green_text(msg)
return msg
else:
return "Connection to %s on port %s failed" % (ip, port)
else:
msg = "Empty line!"
return msg
# f.close()
def logger(msg):
with open(`log.txt`, `a+`) as f:
f.write(str(msg) + "
")
f.flush()
if __name__ == `__main__`:
try:
pool = Pool(processes=4)
with open(`proxy.txt`) as f:
lines = f.readlines()
for i in range(1, lines.__len__() + 1):
result = pool.apply_async(single_func, (i,), callback=logger).get(99999)
pool.close()
pool.join()
# f.close()
except KeyboardInterrupt as e:
clr.print_red_text("Interrupt Reason: %s" % str(e))
相關文章
- Python多程式記錄日誌Python
- python logging日誌模組以及多程式日誌Python
- 檢查REDO日誌相關資訊並生成HTML檔案的指令碼HTML指令碼
- 如何使用Journalctl檢視並操作Systemd日誌
- 日誌異常,IO,CPU的檢查
- python PyEnchant(拼寫檢查)Python
- 管理oracle日誌之調整檢查點Oracle
- mysql開啟檢視慢查詢日誌MySql
- 同時具備多執行緒和多程式安全的寫日誌工具執行緒
- 用RMAN備份歸檔日誌時檢查歸檔日誌是否存在
- mysql 日誌之慢查詢日誌MySql
- Python監控日誌程式Python
- 21行Python程式碼實現拼寫檢查器Python
- 11g 日誌目錄查詢檢視
- 檢視日誌
- 【TUNE_ORACLE】Oracle檢查點(四)檢查點對redo日誌的影響和redo日誌大小設定建議Oracle
- Linux 檢視埠占用並Linux
- mysql 日誌之普通查詢日誌MySql
- 檢查udp埠是否可用?UDP
- RHEL6.8程式單印表機串列埠檢查串列埠
- 檢查Linux系統日誌error和mysql錯誤日誌的指令碼薦LinuxErrorMySql指令碼
- MYSQL啟用日誌和檢視日誌MySql
- alertmanager: 檢視日誌
- [問題]多個檔案寫入日誌報錯
- 用 Python 做單詞拼寫檢查Python
- zaq寫入日誌
- mysql 查詢日誌MySql
- mysql查詢日誌MySql
- 檢查特定埠上正在執行的程式名(轉)
- 怎樣寫一個拼寫檢查器(Python 版)Python
- 通過Xtrabackup日誌來恢復檢查點檔案
- DG-備庫日誌的應用遲時檢查
- 在python程式碼 出力log日誌Python
- win10查詢崩潰日誌方法 win10怎麼檢視崩潰日誌Win10
- 關於MySQL 通用查詢日誌和慢查詢日誌分析MySql
- 寫模板, 並查集。並查集
- 物化檢視重新整理並非完全根據物化檢視日誌記錄
- mysql之 日誌體系(錯誤日誌、查詢日誌、二進位制日誌、事務日誌、中繼日誌)MySql中繼