Skip to content

Instantly share code, notes, and snippets.

View povilasb's full-sized avatar
🏗️

Povilas Balciunas povilasb

🏗️
View GitHub Profile
@povilasb
povilasb / client.py
Last active August 2, 2018 06:24
Same client bind port
# pip install curio==0.9
from curio import socket
import curio
async def amain():
task1 = await curio.spawn(send_hi, 5000, 'client1')
task2 = await curio.spawn(send_hi, 6000, 'client2')
await task1.join()
@povilasb
povilasb / Cargo.toml
Created July 23, 2018 06:04
netsim + python
[package]
authors = ["Povilas Balciunas <[email protected]>"]
name = "netsim-demo"
version = "0.1.0"
[dependencies]
futures = "0.1.17"
netsim = "0.2.2"
tokio-core = "0.1.17"
unwrap = "1.2.0"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadCertificateFileName</key>
<string>root_ca.crt</string>
<key>PayloadContent</key>
@povilasb
povilasb / dns_server.py
Created September 19, 2017 12:06
Sample DNS server
from typing import Tuple
from curio import socket
import curio
import dnslib as dns
class Server:
def __init__(self) -> None:
self.port = 53
@povilasb
povilasb / raw_socket.py
Created August 27, 2017 13:21
Send IP packets with Linux raw sockets
import socket
from pypacker.layer3.ip import IP
from pypacker.layer3.icmp import ICMP
def main() -> None:
sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW)
ip = IP(src_s='192.168.0.103', dst_s='8.8.8.8', p=1) +\
@povilasb
povilasb / main.py
Created August 24, 2017 08:30
TUN/TAP in python
import os
from fcntl import ioctl
import struct
import time
import random
from threading import Thread
from pyroute2 import IPRoute
from pypacker.layer3.ip import IP
from pypacker.layer3.ip6 import IP6
@povilasb
povilasb / logging.py
Last active August 25, 2017 07:35
Sample python logging
import logging
def setup_logging(config: dict) -> None:
logger = logging.getLogger()
logger.setLevel(logging.__dict__[config['level']])
handler = logging.FileHandler(config['file'])
handler.setFormatter(logging.Formatter(
'$asctime $levelname $filename:$lineno $message',
style='$',
from typing import Callable
import raven
_CLIENT = raven.Client()
def track_exceptions(func: Callable) -> Callable:
def tracked_call(*args, **kwargs):
@povilasb
povilasb / raw_http.rs
Created May 7, 2017 09:58
Do HTTP request with raw sockets
use std::net::TcpStream;
use std::io::{Write, Read};
fn main() {
let target_addr = "54.243.92.110:80"; // httpbin.org
let mut stream = TcpStream::connect(target_addr).unwrap();
stream.write(b"GET /ip HTTP/1.1\r\nHost: httpbin.org\r\nConnection: close\r\n\r\n");
let mut buff = [0; 65536];
stream.read(&mut buff);
@povilasb
povilasb / Makefile
Created November 10, 2016 10:47
Pattern as variable
all: config-1 config-2
.PHONY: all
config-%: %
@echo "building conf $^"
.PHONY: config-%
1:
.PHONY: 1