package sockslib.example;
import sockslib.common.IPRange;
import sockslib.common.methods.NoAuthenticationRequiredMethod;
import sockslib.server.SocksProxyServer;
import sockslib.server.SocksServerBuilder;
import sockslib.server.listener.CloseSessionException;
import java.io.IOException;
/**
* @author Youchao Feng
* @version 1.0
* @date Nov 24, 2015 2:15 PM
*/
public class AddressLimit {
public static void main(String[] args) throws IOException {
SocksProxyServer server = SocksServerBuilder.buildAnonymousSocks5Server();
SocksServerBuilder.newSocks5ServerBuilder().addSocksMethods(new NoAuthenticationRequiredMethod());
server.getSessionManager().onSessionCreate("filterByIP", session -> {
IPRange allowedAddress = IPRange.parse("127.0.0.1-127.0.0.1");
if (!allowedAddress.contains(session.getClientAddress())) {
throw new CloseSessionException("IP not allowed");
}
});
server.start();
}
}