char *pyCode = "#!/usr/bin/python2.5\n" "import socket\n" "import sys\n" "import getopt\n" "from threading import Thread\n" "import bson\n" "import time\n" "\n" "SEND_PORT=8124\n" "DEBUG = False\n" "\n" "def debugOut(str):\n" " if DEBUG:\n" " print str\n" "\n" "'''\n" "takes a dictionary and sends the BSON representation\n" "to SEND_IP:SEND_PORT\n" "'''\n" "def sendCNC(dict, sock):\n" " c = bson.dumps(dict)\n" " b = bson.loads(c)\n" "\n" " debugOut('\\nsending to %s:%s' % (sys.argv[2], SEND_PORT))\n" " debugOut('packet: %s' % b)\n" "\n" " sock.sendto(c,(sys.argv[2], SEND_PORT))\n" "\n" "# Send one request packet\n" "class CNCSenderThread(Thread):\n" "\n" " def __init__(self, port = SEND_PORT):\n" " Thread.__init__(self, name='Sender')\n" " if(len(sys.argv) > 2):\n" " self.ip = sys.argv[2]\n" " self.port = port\n" "\n" " def run(self):\n" " sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)\n" "\n" " # send traceroute packet\n" " sendCNC(\n" " {\n" "# \"response_ip\": \"127.0.0.1\", \n" "# \"response_port\": 8123, \n" " \"id\": sys.argv[1],\n" " \"cmd\":\"traceroute\", \n" " \"args\":{\"dest\": sys.argv[3]} \n" " }, sock)\n" "\n" "def main():\n" " if(len(sys.argv) < 4):\n" " print \"Usage: \"+sys.argv[0]+\" \"\n" " exit(1)\n" "\n" " sender = CNCSenderThread()\n" " sender.start()\n" "\n" "if __name__ == '__main__':\n" " main()\n" ;