I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit 9df57a47 authored by sunshine's avatar sunshine Committed by zzz
Browse files

Updated Python I2P version 0.91 by sunshine

parent f2cadb72
No related branches found
No related tags found
No related merge requests found
Showing
with 73 additions and 775 deletions
#! /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()
#! /usr/bin/env python
# ----------------------------------------------- # -----------------------------------------------
# datagram.py: Datagram client # datagram.py: Datagram client
# ----------------------------------------------- # -----------------------------------------------
from i2p import sam from i2p import socket
dest = sam.resolve('yourserver.i2p') print 'Sending a packet to yourserver.i2p...'
S = sam.socket('Bob', sam.SOCK_DGRAM)
dest = socket.resolve('yourserver.i2p')
S = socket.socket('Bob', socket.SOCK_DGRAM)
S.sendto('Hello packet', 0, dest) S.sendto('Hello packet', 0, dest)
# Get packet up to 1000 bytes -- the rest is discarded. # Get packet up to 1000 bytes -- the rest is discarded.
......
#! /usr/bin/env python
# --------------------------------------------------- # ---------------------------------------------------
# datagram_noblock.py: Non-blocking datagram server # datagram_noblock.py: Non-blocking datagram server
# --------------------------------------------------- # ---------------------------------------------------
from i2p import sam from i2p import socket
import time import time
S = sam.socket('Eve', sam.SOCK_DGRAM) S = socket.socket('Eve', socket.SOCK_DGRAM)
print 'Serving at:', S.dest print 'Serving at:', S.dest
S.setblocking(False) S.setblocking(False)
...@@ -15,6 +16,6 @@ while True: ...@@ -15,6 +16,6 @@ while True:
(data, dest) = S.recvfrom(1000) # Read packet (data, dest) = S.recvfrom(1000) # Read packet
print 'Got', data, 'from', dest print 'Got', data, 'from', dest
S.sendto('Hi client!', 0, dest) S.sendto('Hi client!', 0, dest)
except sam.BlockError: # No data available except socket.BlockError: # No data available
pass pass
time.sleep(0.01) # Reduce CPU usage time.sleep(0.01) # Reduce CPU usage
\ No newline at end of file
#! /usr/bin/env python
# ----------------------------------------------- # -----------------------------------------------
# datagram_server.py: Datagram server # 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 print 'Serving at:', S.dest
while True: while True:
......
#! /usr/bin/env python
# ----------------------------------------------- # -----------------------------------------------
# dos.py: Noneffective denial of service tool # dos.py: Noneffective denial of service tool
# ----------------------------------------------- # -----------------------------------------------
from i2p import sam from i2p import socket
import threading, sys import threading, sys
def dos_stream(dest): def dos_stream(dest):
"""Perform a DOS attack on a stream server.""" """Perform a DOS attack on a stream server."""
dest = sam.resolve(dest) dest = socket.resolve(dest)
# DOS code, runs in n separate threads. # DOS code, runs in n separate threads.
def f(): def f():
while True: while True:
S = sam.socket(dest, sam.SOCK_STREAM) S = socket.socket(dest, socket.SOCK_STREAM)
S.connect(dest) S.connect(dest)
S.send('GET / HTTP/1.0\r\n\r\n') S.send('GET / HTTP/1.0\r\n\r\n')
S.close() S.close()
......
#! /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()
Examples: Examples:
cgi_server.py - Example of CGIHTTPServer
datagram.py - Datagram client datagram.py - Datagram client
datagram_noblock.py - Non-blocking datagram server datagram_noblock.py - Non-blocking datagram server
datagram_server.py - Blocking datagram server datagram_server.py - Blocking datagram server
......
#! /usr/bin/env python
# ----------------------------------------------- # -----------------------------------------------
# raw.py: Raw client # raw.py: Raw client
# ----------------------------------------------- # -----------------------------------------------
from i2p import sam from i2p import socket
dest = sam.resolve('yourserver.i2p') # Send to dest dest = socket.resolve('yourserver.i2p') # Send to dest
S = sam.socket('Carol', sam.SOCK_RAW) S = socket.socket('Carol', socket.SOCK_RAW)
S.sendto('Hello packet', 0, dest) S.sendto('Hello packet', 0, dest)
#! /usr/bin/env python
# --------------------------------------------------- # ---------------------------------------------------
# raw_noblock.py: Non-blocking raw server # raw_noblock.py: Non-blocking raw server
# --------------------------------------------------- # ---------------------------------------------------
from i2p import sam from i2p import socket
import time import time
S = sam.socket('Eve', sam.SOCK_RAW) S = socket.socket('Eve', socket.SOCK_RAW)
print 'Serving at:', S.dest print 'Serving at:', S.dest
S.setblocking(False) S.setblocking(False)
...@@ -14,6 +15,6 @@ while True: ...@@ -14,6 +15,6 @@ while True:
try: try:
data = S.recv(1000) # Read packet data = S.recv(1000) # Read packet
print 'Got', data print 'Got', data
except sam.BlockError: # No data available except socket.BlockError: # No data available
pass pass
time.sleep(0.01) # Reduce CPU usage time.sleep(0.01) # Reduce CPU usage
\ No newline at end of file
#! /usr/bin/env python
# ----------------------------------------------- # -----------------------------------------------
# raw_server.py: Raw server # 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 print 'Serving at:', S.dest
while True: while True:
......
#! /usr/bin/env python
# ----------------------------------------------- # -----------------------------------------------
# stream.py: Simple stream client # 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.connect('duck.i2p')
S.send('GET / HTTP/1.0\r\n\r\n') # Send request S.send('GET / HTTP/1.0\r\n\r\n') # Send request
print S.recv(1000) # Read up to 1000 bytes print S.recv(1000) # Read up to 1000 bytes
#! /usr/bin/env python
# ----------------------------------------------- # -----------------------------------------------
# stream_eepget.py: Get an eepsite using sockets # 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.connect('duck.i2p')
S.send('GET / HTTP/1.0\r\n\r\n') # Send request S.send('GET / HTTP/1.0\r\n\r\n') # Send request
f = S.makefile() # File object f = S.makefile() # File object
......
#! /usr/bin/env python
# ----------------------------------------------- # -----------------------------------------------
# stream_noblock.py: Non-blocking stream server # stream_noblock.py: Non-blocking stream server
# ----------------------------------------------- # -----------------------------------------------
import i2p import i2p
from i2p import sam from i2p import socket
import thread, time 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.listen(10) # Queue up to 10 connections
S.setblocking(False) # Non-blocking S.setblocking(False) # Non-blocking
print 'Serving at:', S.dest print 'Serving at:', S.dest
...@@ -25,15 +26,15 @@ def handle_connection(C): ...@@ -25,15 +26,15 @@ def handle_connection(C):
f.close() # Close file f.close() # Close file
C.close() # Close connection C.close() # Close connection
except sam.Error, e: except socket.Error, e:
# Recover from SAM errors # Recover from socket errors
print 'Warning:', str(e) print 'Warning:', str(e)
while True: while True:
try: try:
(C, remotedest) = S.accept() # Get a connection (C, remotedest) = S.accept() # Get a connection
thread.start_new_thread(handle_connection, (C,)) thread.start_new_thread(handle_connection, (C,))
except sam.BlockError: except socket.BlockError:
# Ignore 'command would have blocked' errors # Ignore 'command would have blocked' errors
pass pass
time.sleep(0.01) # Reduce CPU usage time.sleep(0.01) # Reduce CPU usage
\ No newline at end of file
#! /usr/bin/env python
# ----------------------------------------------- # -----------------------------------------------
# stream_server.py: Simple stream server # stream_server.py: Simple stream server
# ----------------------------------------------- # -----------------------------------------------
import i2p 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 S.listen(10) # Queue up to 10 connections
print 'Serving at:', S.dest print 'Serving at:', S.dest
...@@ -23,6 +24,6 @@ while True: ...@@ -23,6 +24,6 @@ while True:
f.close() # Close file f.close() # Close file
C.close() # Close connection C.close() # Close connection
except sam.Error, e: except socket.Error, e:
# Recover from SAM errors # Recover from socket errors
print 'Warning:', str(e) print 'Warning:', str(e)
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment