我有一个SocketServer接受传入的连接。出于安全原因,我只应允许本地连接(来自运行服务器的计算机的连接)。
如何确定传入连接是否来自另一台计算机?以下代码是否对此安全?
Socket socket = someServerSocket.accept();
String remoteAddress = socket .getInetAddress().getHostAddress();
if (!fromThisMachine(remoteAddress)) {
// Not from this machine.
}
而fromThisMachine()
方法是这样的:
public boolean fromThisMachine(String remoteAddress) {
try {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface networkInterface = interfaces.nextElement();
Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
while (addresses.hasMoreElements()) {
InetAddress inetAddress = addresses.nextElement();
String hostName = inetAddress.getHostName();
String hostAddr = inetAddress.getHostAddress();
if (hostName.equals(remoteAddress) || hostAddr.equals(remoteAddress)) {
return true;
}
}
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
log("Unauthorized request to server from: " + remoteAddress);
return false;
}
谢谢,莫森
如果要限制来自本地主机的连接,请在打开ServerSocket时指定该连接。如果仅侦听localhost,则只能从localhost获得连接。
int port = .....
SocketAddress socketAddress = new InetSocketAddress("127.0.0.1", port);
ServerSocket serverSocket = new ServerSocket();
serverSocket.bind(socketAddress);
serverSocket.accept();
问题内容: 我已经在机架空间上启动了CentOS服务器并执行了‘d。然后。因此,只是准系统。 我可以通过ssh(22)远程访问其IP地址,所以DNS或其他任何问题(我认为…)都没有问题,但是当我尝试通过浏览器等通过端口80进行连接时,拒绝连接。 但是,从本地主机,我可以使用telnet(80),甚至可以使用lynx并毫无问题地得到服务。telnet从外部(我的房子,我的学校,当地的咖啡店等)在22
所以有几个网站会为你计算你的链接本地ipv6地址,就像这里的这个。 尽管如此,它并没有给出任何有用的关于这个地址是如何计算的,也没有输入参数是什么。那么,如果一个人知道自己的ipv4地址、子网掩码和网关地址,计算链路本地ipv6地址的过程(或算法)是什么?我正在使用SCTP套接字做一个项目,该项目使用ISATAP网络隧道和LL ipv6地址用于构建ISATAP地址。
问题内容: 所以我有一个Nginx在docker容器中运行,我有一个mysql在本地主机上运行,我想从我的Nginx内部连接到MySql。MySql在localhost上运行,并且没有将端口暴露给外界,因此它绑定在localhost上,而不绑定在计算机的IP地址上。 有什么方法可以从此Docker容器中连接到此MySql或localhost上的任何其他程序吗? 此问题与“如何从Docker容器
MSDN说方法: 侦听会导致... Socket侦听传入连接尝试。backlog参数指定可以排队接受的传入连接数...使用接受或开始接受从队列中接受连接。 这意味着套接字将把传入的连接放入队列中。我们如何确定排队连接的数量? 我尝试过的一件事显然不起作用,就是服务器套接字。轮询(timeToWait,SelectMode。SelectRead)。这总是返回false。
我有以下配置: 两个正在运行的Tomcat实例运行Apache Camel 2.20.2,它们使用竞争消费者概念来读取同一JMS消息队列的消息 碰巧,其中一个Camel实例连接到从属代理,即使从属代理未处于活动状态(即,从日志文件中可以看出,它没有锁定CAHADB)。 当这种情况发生时,驼峰实例上的路由被阻塞,我们得到一个,这会阻塞路由,消息正在排队。 从属代理接受来自客户端应用程序的连接(在我们
问题内容: 我正在使用Ubuntu 16.0.4操作系统,并在其上安装了minikube。我需要将一些文件复制到minikube,所以我该怎么做?我尝试了下一个命令,但它要求输入密码,但我不知道 注: minikube IP是 192.168.99.100 ,我用 泊坞窗 作为minikube默认用户,但实际上我不知道这是否是正确的OT没有。 那么minikube的默认用户名和密码是什么,如何将文