Skip to main content

System remote control via local network

Project description

syscon is a python package providing remote control tools for other computers in the network. At the moment, syscon is still a beta version, since I hope to be able to add some new functions.

It uses the Advanced Encryption Standard (AES) to encrypt the data traffic. In order to do this, I have integrated the Python AES code of Josh Davis (http://www.josh-davis.org/pythonAES). For key exchange, I implemented the Diffie-Hellman-Merkle algorithm.

Important Note: If your country doesn’t allow strong cryptography, you might not be allowed to use this tool with cryptography there. Then you should use syscon-nc without encryption of all the data which is sent.

Syntax

Client

On the client, you just have to start the client.py

If you want to have a “silent” remote control, you should rename the client.py to client.pyw

controlling Computer

On the controlling computer, usage is as follows:

import syscon.control

con = syscon.control.Connection("XYZ")
# This defines con as a connection with the Computer in the network which
# has the name XYZ over port 51000. If you want to use another port, use
# the second parameter, e.g. for port 9999:
# con = syscon.control.Connection("XYZ", 9999)
# In case you do this, you must start the client.pyw
# on the remote machine with the port number as parameter

# Now send orders with con.send (next section)
# Usage of con.send: con.send(command[, second_param[, third_param]])

con.close()
# This immediately stops the connection and closes the client.py or client.pyw
# on the other computer. You could also use con.send("stopcontrol")

Screenshots

Also, there is a function to make screenshots of the monitor of the remote computer. The Python Imaging Library (PIL) is needed to be installed on the client computer. syscon uses version 1.1.7 of this package. It is available to download here. You have to start the pyscreen.py on the controlling computer. You will be asked which port you want to use (56000 is recommended) and where to save the screenshots.

If you use port 56000, you just need to call the screenshot function of the connection object to make a screenshot. Otherwise, you need to use the following code:

...
# con is the connection object
con.send("screenshot", "54321")

where the second parameter (note it’s a string) specifies the port number.

Orders to remote computer

There are the following orders in this version:

  1. execpy: This command needs a second parameter. The code from the second parameter is executed with “exec” on the remote machine.

  2. executefile: Starts the program specified in the second parameter.

  3. download: Downloads the file from the url in the third parameter to the local path (on the remote computer) in the second parameter.

  4. shutdown: Sends a shutdown signal to the remote computer (note: works only with Windows NT to Windows 7)

  5. logoff: Sends a logoff signal to the remote computer (note: works also only with Windows NT to Windows 7)

  6. stopcontrol: Stops the remote control immediately. Same as con.close()

  7. screenshot: Makes a screenshot of the remote machine monitor. Usage: see above.

  8. returnvalue: Returns the return value of the expression in the second parameter

If you have found any bugs, please write an e-mail or report the bug on the Launchpad project page. I will try to work out a solution.

Changelog

0.4 - The connection (except from the screenshot function, where the data volume would be to big) is now encrypted with AES

0.3.1 - Bugfixes (Working on linux systems, Usage without PIL)

0.3.0 - Initial release

Note: The documentation below is only for the beta of the next version.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

syscon-0.4.zip (21.5 kB view hashes)

Uploaded Source

syscon-0.4.tar.gz (13.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page