Place Holder Products Code
Bash MySQL
Notes Return of the Fed Login
Admin Control Panel Email Control Panel Product Control Panel Debug Info Beacon Create Snippet Tag Control Panel

Code

*More fully fledged applications can be found on the Products page. The Bash page is dedicated to fully commented oneliners, and a MySQL quick reference is available here.



				
#!/usr/bin/python ''' Will Bergen - 2013 Simple 'lag switch' based on ipfw pipe manipulation Connect your system-to-lag to your box, and your box to the Internet. Bridge the two connections. ''' import time import os ## Setup The Rules Method ## def setupRules(): print "Setting up UDP Rules..." os.system("ipfw add 1 pipe 1 src-port 3074") os.system("ipfw add 2 pipe 1 dst-port 3074") os.system("ipfw add 3 pipe 1 src-port 45881") os.system("ipfw add 4 pipe 1 dst-port 45881") print "Rules Set" ## Print Instruction Method ## def printInstructions(): print "" print "Available Commands:" print " p pause traffic for time t (t in ms)" print " l set local latency to 10,000ms" print " z disable all settings" print " s setup the rules (is done on load)" print " i print the help" print " q exit lagger" print "" ## Pause pipe for X Seconds Method ## def pausePipe(x): print "" print "Pausing pipe for " + str(x) + " seconds..." killedRule = "ipfw pipe 1 config bw 0KBytes/s delay 0ms" os.system(killedRule) time.sleep(x) os.system(normRule) print "Pipe Unpaused." print "" ## Delete all Rules Method ## def disableAll(): print "" print "Deleting all Rules and setting Pipe to Allow Traffics..." os.system("ipfw delete 1") os.system("ipfw delete 2") os.system("ipfw delete 3") os.system("ipfw delete 4") print "Done." print "" ## Set Latency to 10kms Method ## def setLatency(x): print "" print "Setting the Latency to 10,000ms for " + str(x) + " seconds..." highLatency = "ipfw pipe 1 config bw 2000KBytes/s delay 1000ms" os.system(highLatency) time.sleep(x) os.system(normRule) print "Pipe Latency Returned to 0." print "" ## Super Do Action Method ## def suDo(strToRun, x): print "" print "Doing it..." os.system(strToRun) time.sleep(int(x)) os.system(normRule) print "Done." print "" # Setup: quit=False; setupRules() normRule = "ipfw pipe 1 config bw 2000KBytes/s delay 0ms" print "" print "******** Manipulate an ipfw Pipe ********" print "" printInstructions() # Do the Work: while quit != True: var = raw_input(":") #print "You Selected: ", var if var == 'i': printInstructions() if var == 'q': print "Quitting..." exit() if var == 'p': pauseLength = int(raw_input("Pause Length (in seconds): ")) pausePipe(pauseLength) if var == 'l': latLength = int(raw_input("Length of 10k lag: ")) setLatency(latLength) if var == 'z': disableAll() if var == 's': setupRules() if var == 'speck': print "" print "Type in Exactly What You Want in 'speed,lat,dur' format." print "Ex: '500,300,5' would limit the bandwidth to 500, and set latency to 300 for 5 seconds." print "To escape speck type 'q'. To escape and quit lagger, type 'q!'." speckQuit = False while speckQuit != True: var2 = raw_input("!:") if var2 == 'q': speckQuit = True if var2 == 'q!': speckQuit = True quit = True # if grep var2 goes here - error checking varArray = var2.split(",") speed = varArray[0] lat = varArray[1] dur = varArray[2] runStr = "ipfw pipe 1 config bw " + speed + "KByte/s delay " + lat + "ms" suDo(runStr, dur)