Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dmdhrumilmistry/p2pshare
Peer to Peer file sharing python program
https://github.com/dmdhrumilmistry/p2pshare
file-sharing p2p p2pshare python python3
Last synced: 11 days ago
JSON representation
Peer to Peer file sharing python program
- Host: GitHub
- URL: https://github.com/dmdhrumilmistry/p2pshare
- Owner: dmdhrumilmistry
- Created: 2022-01-26T05:49:55.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-01-28T10:49:26.000Z (almost 3 years ago)
- Last Synced: 2024-05-01T16:30:53.456Z (8 months ago)
- Topics: file-sharing, p2p, p2pshare, python, python3
- Language: Python
- Homepage:
- Size: 30.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# P2P Share
Peer to Peer file transfer over the network
## Installation
- Using pip and GitHub
```
pip3 install git+https://github.com/dmdhrumilmistry/P2Pshare.git
```
- Clone Method
- clone repo
```
git clone --depth=1 https://github.com/dmdhrumilmistry/P2Pshare.git
```
- change directory
```
cd P2Pshare
```
- install using pip
```
pip3 install -e .
```## Create Standalone
- Clone repo and change to repo directory
- Using pyinstaller
```bash
pip3 install pyinstaller
pyinstaller --onefile -n p2pshare/__main__.py
```
- Get executable from `dist` directory## Usage
$ `p2pshare -h`
or
$ `python3 -m p2pshare -h`
```
usage: p2pshare [-h] [-i IP] [-p PORT] [-buff BUFF_SIZE] [-t {send,recv}] [-d SAVE_DIR] [-f FILE_PATH]
[-to TIMEOUT] [-conn CONNECTIONS]Share files over the network between peers
options:
-h, --help show this help message and exit
-i IP, --ip IP ip address of the sender
-p PORT, --port PORT port of the sender
-buff BUFF_SIZE, --buff-size BUFF_SIZE
Buffer Size
-t {send,recv}, --type {send,recv}
Peer Type: send/recv
-d SAVE_DIR, --directory SAVE_DIR
directory to save received files
-f FILE_PATH, --file FILE_PATH
path of the file to be sent
-to TIMEOUT, --timeout TIMEOUT
connection timeout
-conn CONNECTIONS, --connections CONNECTIONS
number of simultaneous connections for sender
```
- examples
- Send File
`p2pshare -t send -ip 192.168.10.27 -p 9898 -f myfile.ext`
- Receive File
`p2pshare -t recv -ip 192.168.10.27 -p 9898 -d /home/user/Downloads`
## Transfer files over the internet
- Start p2pshare sender- Using `ngrok`
- Download and install [ngrok](https://ngrok.com/download)
- Set auth token generated after registration
```
ngrok authtoken [your_token]
```
- Create TCP tunnel
```
ngrok tcp [p2pshare_sender_port]
```
> default p2pshare sender port is `9898`
- After tunnel has been created successfully consider below line from the output:
```
Forwarding tcp://[something].tcp.ngrok.io:[ngrok_port] -> localhost:9898
```
> while connecting use host:`[something].tcp.ngrok.io` and port:`[ngrok_port]`
- Connect to sender
```
p2pshare -t recv -i [something].tcp.ngrok.io -p [ngrok_port] -d [save_path]
```
## Note
- The files are not encrypted during transmission. To transfer files securely use [pysecuretransfer](https://github.com/dmdhrumilmistry/pysecuretransfer) which authenticates user and sends encrypted file which can be decrypted only using user's password.## LICENSE
[MIT License](https://github.com/dmdhrumilmistry/P2Pshare/blob/main/LICENSE)