first commit
This commit is contained in:
34
server.js
Normal file
34
server.js
Normal file
@ -0,0 +1,34 @@
|
||||
const net = require('net');
|
||||
const b32 = require("hi-base32");
|
||||
const DHT = require("@hyperswarm/dht");
|
||||
const node = new DHT({});
|
||||
const pump = require("pump");
|
||||
const { pipeline } = require('stream');
|
||||
const server = net.createServer(clientSocket => {
|
||||
clientSocket.on('end', () => {
|
||||
console.log('Client disconnected');
|
||||
});
|
||||
|
||||
clientSocket.on('error', err => {
|
||||
console.error('Client socket error:', err);
|
||||
});
|
||||
|
||||
clientSocket.once("data",(firstData) => {
|
||||
const firstLine = firstData.toString()
|
||||
if (firstLine !== '') {
|
||||
console.log(firstLine)
|
||||
const [hostname] = firstLine.split("\n").filter(a=>a.toLowerCase().startsWith('host:'));
|
||||
const split = hostname.split(":")[1].trim().split('.');
|
||||
console.log(split);
|
||||
const publicKey = Buffer.from(b32.decode.asBytes(split[0].toUpperCase()), 'hex');
|
||||
console.log(publicKey.toString('hex'))
|
||||
const socket = node.connect(publicKey);
|
||||
socket.on('client error', console.error);
|
||||
pump(socket,clientSocket,socket)
|
||||
socket.write(firstLine);
|
||||
}
|
||||
});
|
||||
});
|
||||
server.listen(8081, () => {
|
||||
console.log('Proxy server listening');
|
||||
});
|
Reference in New Issue
Block a user