Updated Python I2P version 0.91 by sunshine

This commit is contained in:
sunshine
2004-08-02 14:34:06 +00:00
committed by zzz
parent f2cadb7278
commit 9df57a47d5
15 changed files with 73 additions and 775 deletions

View File

@@ -0,0 +1,26 @@
#! /usr/bin/env python
# -----------------------------------------------
# cgi_server.py: Simple CGI server
# -----------------------------------------------
myServerSession = "mytestxxx.i2p"
from i2p import BaseHTTPServer, CGIHTTPServer
class MyServer(BaseHTTPServer.HTTPServer):
pass
class MyRequestHandler(CGIHTTPServer.CGIHTTPRequestHandler):
pass
def runServer():
httpd = MyServer(myServerSession, MyRequestHandler)
print "MyServer: local SAM session = %s" % myServerSession
print "MyServer: dest = %s" % httpd.socket.dest
httpd.serve_forever()
if __name__ == '__main__':
runServer()

View File

@@ -1,12 +1,15 @@
#! /usr/bin/env python
# -----------------------------------------------
# datagram.py: Datagram client
# -----------------------------------------------
from i2p import sam
from i2p import socket
dest = sam.resolve('yourserver.i2p')
S = sam.socket('Bob', sam.SOCK_DGRAM)
print 'Sending a packet to yourserver.i2p...'
dest = socket.resolve('yourserver.i2p')
S = socket.socket('Bob', socket.SOCK_DGRAM)
S.sendto('Hello packet', 0, dest)
# Get packet up to 1000 bytes -- the rest is discarded.

View File

@@ -1,12 +1,13 @@
#! /usr/bin/env python
# ---------------------------------------------------
# datagram_noblock.py: Non-blocking datagram server
# ---------------------------------------------------
from i2p import sam
from i2p import socket
import time
S = sam.socket('Eve', sam.SOCK_DGRAM)
S = socket.socket('Eve', socket.SOCK_DGRAM)
print 'Serving at:', S.dest
S.setblocking(False)
@@ -15,6 +16,6 @@ while True:
(data, dest) = S.recvfrom(1000) # Read packet
print 'Got', data, 'from', dest
S.sendto('Hi client!', 0, dest)
except sam.BlockError: # No data available
except socket.BlockError: # No data available
pass
time.sleep(0.01) # Reduce CPU usage
time.sleep(0.01) # Reduce CPU usage

View File

@@ -1,11 +1,12 @@
#! /usr/bin/env python
# -----------------------------------------------
# datagram_server.py: Datagram server
# -----------------------------------------------
from i2p import sam
from i2p import socket
S = sam.socket('Eve', sam.SOCK_DGRAM)
S = socket.socket('Eve', socket.SOCK_DGRAM)
print 'Serving at:', S.dest
while True:

View File

@@ -1,19 +1,20 @@
#! /usr/bin/env python
# -----------------------------------------------
# dos.py: Noneffective denial of service tool
# -----------------------------------------------
from i2p import sam
from i2p import socket
import threading, sys
def dos_stream(dest):
"""Perform a DOS attack on a stream server."""
dest = sam.resolve(dest)
dest = socket.resolve(dest)
# DOS code, runs in n separate threads.
def f():
while True:
S = sam.socket(dest, sam.SOCK_STREAM)
S = socket.socket(dest, socket.SOCK_STREAM)
S.connect(dest)
S.send('GET / HTTP/1.0\r\n\r\n')
S.close()

View File

@@ -1,22 +0,0 @@
#! /usr/bin/env python
myServerAddress = "mytestxxx.i2p"
from i2p import I2PBaseHTTPServer, I2PCGIHTTPServer
class MyServer(I2PBaseHTTPServer.HTTPServer):
pass
class MyRequestHandler(I2PCGIHTTPServer.CGIHTTPRequestHandler):
pass
def runServer():
httpd = MyServer(myServerAddress, MyRequestHandler)
print "MyServer: local address = %s" % myServerAddress
print "MyServer: dest = %s" % httpd.socket.dest
httpd.serve_forever()
if __name__ == '__main__':
runServer()

View File

@@ -1,6 +1,7 @@
Examples:
cgi_server.py - Example of CGIHTTPServer
datagram.py - Datagram client
datagram_noblock.py - Non-blocking datagram server
datagram_server.py - Blocking datagram server

View File

@@ -1,10 +1,11 @@
#! /usr/bin/env python
# -----------------------------------------------
# raw.py: Raw client
# -----------------------------------------------
from i2p import sam
from i2p import socket
dest = sam.resolve('yourserver.i2p') # Send to dest
S = sam.socket('Carol', sam.SOCK_RAW)
dest = socket.resolve('yourserver.i2p') # Send to dest
S = socket.socket('Carol', socket.SOCK_RAW)
S.sendto('Hello packet', 0, dest)

View File

@@ -1,12 +1,13 @@
#! /usr/bin/env python
# ---------------------------------------------------
# raw_noblock.py: Non-blocking raw server
# ---------------------------------------------------
from i2p import sam
from i2p import socket
import time
S = sam.socket('Eve', sam.SOCK_RAW)
S = socket.socket('Eve', socket.SOCK_RAW)
print 'Serving at:', S.dest
S.setblocking(False)
@@ -14,6 +15,6 @@ while True:
try:
data = S.recv(1000) # Read packet
print 'Got', data
except sam.BlockError: # No data available
except socket.BlockError: # No data available
pass
time.sleep(0.01) # Reduce CPU usage

View File

@@ -1,11 +1,12 @@
#! /usr/bin/env python
# -----------------------------------------------
# raw_server.py: Raw server
# -----------------------------------------------
from i2p import sam
from i2p import socket
S = sam.socket('Eve', sam.SOCK_RAW)
S = socket.socket('Eve', socket.SOCK_RAW)
print 'Serving at:', S.dest
while True:

View File

@@ -1,11 +1,12 @@
#! /usr/bin/env python
# -----------------------------------------------
# stream.py: Simple stream client
# -----------------------------------------------
from i2p import sam
from i2p import socket
S = sam.socket('Alice', sam.SOCK_STREAM)
S = socket.socket('Alice', socket.SOCK_STREAM)
S.connect('duck.i2p')
S.send('GET / HTTP/1.0\r\n\r\n') # Send request
print S.recv(1000) # Read up to 1000 bytes

View File

@@ -1,11 +1,12 @@
#! /usr/bin/env python
# -----------------------------------------------
# stream_eepget.py: Get an eepsite using sockets
# -----------------------------------------------
from i2p import sam
from i2p import socket
S = sam.socket('Alice', sam.SOCK_STREAM)
S = socket.socket('Alice', socket.SOCK_STREAM)
S.connect('duck.i2p')
S.send('GET / HTTP/1.0\r\n\r\n') # Send request
f = S.makefile() # File object

View File

@@ -1,13 +1,14 @@
#! /usr/bin/env python
# -----------------------------------------------
# stream_noblock.py: Non-blocking stream server
# -----------------------------------------------
import i2p
from i2p import sam
from i2p import socket
import thread, time
S = sam.socket('Dave', sam.SOCK_STREAM)
S = socket.socket('Dave', socket.SOCK_STREAM)
S.listen(10) # Queue up to 10 connections
S.setblocking(False) # Non-blocking
print 'Serving at:', S.dest
@@ -25,15 +26,15 @@ def handle_connection(C):
f.close() # Close file
C.close() # Close connection
except sam.Error, e:
# Recover from SAM errors
except socket.Error, e:
# Recover from socket errors
print 'Warning:', str(e)
while True:
try:
(C, remotedest) = S.accept() # Get a connection
thread.start_new_thread(handle_connection, (C,))
except sam.BlockError:
except socket.BlockError:
# Ignore 'command would have blocked' errors
pass
time.sleep(0.01) # Reduce CPU usage

View File

@@ -1,12 +1,13 @@
#! /usr/bin/env python
# -----------------------------------------------
# stream_server.py: Simple stream server
# -----------------------------------------------
import i2p
from i2p import sam
from i2p import socket
S = sam.socket('Dave', sam.SOCK_STREAM)
S = socket.socket('Dave', socket.SOCK_STREAM)
S.listen(10) # Queue up to 10 connections
print 'Serving at:', S.dest
@@ -23,6 +24,6 @@ while True:
f.close() # Close file
C.close() # Close connection
except sam.Error, e:
# Recover from SAM errors
except socket.Error, e:
# Recover from socket errors
print 'Warning:', str(e)