tproxy

Software screenshot:
tproxy
Rincian Software:
Versi: 0.5.4
Tanggal Upload: 12 May 15
Pengembang: Benoit Chesneau
Lisensi: Gratis
Popularitas: 110

Rating: 3.0/5 (Total Votes: 2)

tproxy adalah sederhana routing yang TCP proxy (lapisan 7) dibangun di atas Geven_t, yang memungkinkan Anda mengkonfigurasi logika rutin Python & nbsp;. Ini sangat terinspirasi dari mesin proxy tetapi memiliki beberapa unik seperti model pekerja pra-garpu dipinjam untuk Gunicorn .
Instalasi:
tproxy membutuhkan Python 2.x> = 2.5. Dukungan Python 3.x direncanakan.
pip menginstal gevent
pip menginstal tproxy
Untuk menginstal dari sumber:
git clone git: //github.com/benoitc/tproxy.git
cd tproxy
pip menginstal requirements.txt r
python setup.py install
Menguji instalasi Anda dengan menjalankan baris perintah:
contoh tproxy / transparent.py
Dan terus http://127.0.0.1:5000, Anda akan melihat homepage google.
Penggunaan:
tproxy h
Penggunaan: tproxy [OPTIONS] script_path
Pilihan:
& Nbsp; - nomor versi versi acara program dan keluar
& Nbsp; h, --help tampilkan pesan bantuan ini dan keluar
& Nbsp; - log-file = FILE File log untuk menulis ke. [-]
& Nbsp; - log-level = TINGKAT The granularity dari output log. [Info]
& Nbsp; --config log = FILE file log konfigurasi untuk menggunakan. [None]
& Nbsp; -n STRING, --name = STRING
& Nbsp; dasar A digunakan dengan setproctitle untuk proses penamaan.
& Nbsp; [None]
& Nbsp ;-D, --daemon daemonize proses Gunicorn. [Salah]
& Nbsp FILE ;-p, --pid = FILE file A digunakan untuk file PID. [None]
& Nbsp; u USER, user = PENGGUNA proses Beralih pekerja untuk menjalankan sebagai pengguna ini. [501]
& Nbsp; GROUP -g, --group = GROUP
& Nbsp; proses pekerja Beralih ke dijalankan sebagai grup ini. [20]
& Nbsp; -m INT, --umask = INT Sedikit masker untuk mode file pada file yang ditulis oleh
& Nbsp; Gunicorn. [0]
& Nbsp; ALAMAT -b, --bind = ALAMAT
& Nbsp; Soket untuk mengikat. [127.0.0.1:8000]
& Nbsp; - backlog = INT Jumlah maksimum koneksi tertunda. [2048]
& Nbsp; w INT, --workers = INT
& Nbsp; Jumlah pekerja proses untuk menangani permintaan.
& Nbsp; [1]
& Nbsp; - pekerja-koneksi = INT
& Nbsp; Jumlah maksimum klien simultan per pekerja.
& Nbsp; [1000]
& Nbsp; t INT, --timeout = INT
& Nbsp; Pekerja diam selama lebih dari ini banyak detik yang
& Nbsp; tewas dan restart. [30]
Sinyal
QUIT - Shutdown Graceful. Berhenti menerima koneksi immediatly
& Nbsp; dan menunggu sampai semua hubungan dekat
JANGKA - Shutdown Cepat. Berhenti menerima dan menutup semua conections
& Nbsp; setelah 10s.
INT - Sama seperti JANGKA
HUP - reload Graceful. Reload semua pekerja dengan kode baru
& Nbsp; dalam naskah routing.
USR2 - Tingkatkan tproxy dengan cepat
TTIN - Meningkatkan jumlah pekerja dari 1
TTOU - Penurunan jumlah pekerja dari 1
Exemple script routing yang
import re
re_host = re.compile ("Host:. s * (*) r n")
kelas CouchDBRouter (objek):
& Nbsp; # lihat tabel routing dan kembali node couchdb menggunakan
& Nbsp; def lookup (self, nama):
& Nbsp; "" "melakukan sesuatu" ""
router = CouchDBRouter ()
# Lakukan routing konten menyadari berdasarkan data aliran. Di sini,
# Informasi header host dari protokol HTTP parsing untuk menemukan
# Username dan rutinitas lookup dijalankan pada nama untuk menemukan yang benar
# Couchdb simpul. Jika tidak cocok dapat dibuat belum, melakukan apa-apa dengan
# Koneksi. (Membuat server couchone sendiri ...)
def proxy (data):
& Nbsp; pertandingan = re_host.findall (data)
& Nbsp; jika pertandingan:
& Nbsp; host = router.lookup (matches.pop ())
& Nbsp; kembali {"remote": tuan}
& Nbsp; kembali Tidak
Contoh SOCKS4 Proxy di 18 Garis
socket impor
impor struct
def proxy (data):
& Nbsp; jika len (data) <9:
& Nbsp; kembali
& Nbsp; perintah = Ord (data [1])
& Nbsp; ip, port = socket.inet_ntoa (data [4: 8]), struct.unpack ("> H", data [2: 4]) [0]
& Nbsp; idx = data.index (" 0")
& Nbsp; userid = Data [8: idx]
& Nbsp; jika perintah == 1: #connect
& Nbsp; pulang dict (remote = "% s:% s"% (ip, port),
& Nbsp; balasan = " 0 x5a 0 0 0 0 0 0",
& Nbsp; data = Data [idx:])
& Nbsp; yang lain:
& Nbsp; kembali {"dekat": " 0 x5b 0 0 0 0 0 0"}
Nilai Hari pulang
& Nbsp; {"remote:": string atau tuple} - String adalah host: port dari server yang akan proxy.
& Nbsp; {"remote": String, "data": String} - Sama seperti di atas, tapi mengirim data yang diberikan sebagai gantinya.
& Nbsp; {"remote": String, "data": String, "balasan": String} - Sama seperti di atas, tapi membalas dengan data yang diberikan kembali ke klien
& Nbsp; Tidak - Apakah tidak ada.
& Nbsp; {"dekat": Benar} - Tutup sambungan.
& Nbsp; {"dekat": String} - Tutup koneksi setelah mengirim String.
Menangani kesalahan
Anda dapat dengan mudah menangani error dengan menambahkan fungsi proxy_error dalam script Anda:
def proxy_error (client, e):
& Nbsp; lulus
. Fungsi ini mendapatkan contoh ClientConnection (koneksi saat ini) sebagai argumen pertama dan pengecualian kesalahan dalam argumen kedua

Persyaratan :

  • Python

Software yang serupa

MapProxy
MapProxy

20 Feb 15

ExaProxy
ExaProxy

20 Feb 15

mitmproxy
mitmproxy

14 Apr 15

amms
amms

20 Feb 15

Perangkat lunak lain dari pengembang Benoit Chesneau

http-parser
http-parser

20 Feb 15

http-parser
http-parser

12 May 15

hroute
hroute

11 May 15

Komentar untuk tproxy

Komentar tidak ditemukan
Tambahkan komentar
Aktifkan gambar!