1.0.9 • Published 3 years ago

node-socksv5-dns-looukp v1.0.9

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

Description

SOCKS protocol version 5 server and client implementations for node.js

Requirements

Tested on

Install

npm install node-socksv5

Examples

  • Server with no authentication and allowing all connections:
import {Server, Auth} from "node-socksv5";

const srv = new Server();
srv.listen(1080, 'localhost', () => {
	console.log('SOCKS server listening on port 1080');
});
srv.useAuth(Auth.none());
  • Server with username/password authentication and allowing all (authenticated) connections:
import {Server, Auth} from "node-socksv5";

const srv = new Server();
srv.listen(1080, 'localhost', () => {
	console.log('SOCKS server listening on port 1080');
});
srv.useAuth(srv.useAuth(Auth.userPass((username, password) => {
	if (username === 'nodejs' && password === 'rules!') {
		return Promise.resolve();
	} else {
		return Promise.reject();
	}
}));
  • Server with no authentication and denying all connections not made to port 80:
import {Server, Auth} from "node-socksv5";

const srv = new Server({}, (info, accept, deny) => {
  if (info.destination.port === 80) {
    accept();
  } else {
    deny();
  }
});
srv.listen(1080, 'localhost', () => {
	console.log('SOCKS server listening on port 1080');
});
srv.useAuth(Auth.none());
  • Server with no authentication, intercepting all connections to port 80, and passing through all others:
import {Server, Auth} from "node-socksv5";

const srv = new Server({}, (info, accept, deny) => {
  if (info.destination.port === 80) {
		const socket = await accept();
		var body = 'Hello ' + info.source.ip + '!\n\nToday is: ' + (new Date());
		socket.end([
			'HTTP/1.1 200 OK',
			'Connection: close',
			'Content-Type: text/plain',
			'Content-Length: ' + Buffer.byteLength(body),
			'',
			body
		].join('\r\n'));
	} else {
		accept();
	}
});
srv.listen(1080, 'localhost', () => {
	console.log('SOCKS server listening on port 1080');
});
srv.useAuth(Auth.none());
  • Client with no authentication:
import {Client, Auth} from "node-socksv5";

const client = new Client({
	proxy: {
		host: "127.0.0.1",
		port: 1080,
	},
	destination: {
		host: "google.com",
		port: 80,
	},
	auths: [ Auth.none() ],
}, (socket) => {
	console.log('>> Connection successful');
	socket.write('GET /node.js/rules HTTP/1.0\r\n\r\n');
	socket.pipe(process.stdout);
});
1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago