我需要可靠地检测设备是否具有完全的互联网访问权限,即用户不仅限于强制网络门户(也称为围墙花园),即有限的子网强制用户在表单上提交凭据以便获得满访问.
我的应用程序正在自动执行身份验证过程,因此在开始登录活动之前知道完全互联网访问不可用非常重要.
问题不在于如何检查网络接口是否已启动且处于连接状态.它是关于确保设备具有不受限制的互联网访问,而不是沙盒内部网段.
到目前为止我尝试过的所有方法都失败了,因为连接到任何知名主机都不会抛出异常但返回有效的HTTP 200
响应代码,因为所有请求都被路由到登录页面.
以下是我尝试的所有方法,但它们都返回true
而不是false
出于上述原因:
1:
InetAddress.getByName(host).isReachable(TIMEOUT_IN_MILLISECONDS);
isConnected = true; <exception not thrown>
Run Code Online (Sandbox Code Playgroud)
2:
Socket socket = new Socket();
SocketAddress sockaddr = new InetSocketAddress(InetAddress.getByName(host), 80);
socket.connect(sockaddr, pingTimeout);
isConnected = socket.isConnected();
Run Code Online (Sandbox Code Playgroud)
3:
URL url = new URL(hostUrl));
URLConnection urlConn = url.openConnection();
HttpURLConnection httpConn = (HttpURLConnection) urlConn;
httpConn.setAllowUserInteraction(false);
httpConn.setRequestMethod("GET");
httpConn.connect();
responseCode = httpConn.getResponseCode();
isConnected = responseCode == HttpURLConnection.HTTP_OK;
Run Code Online (Sandbox Code Playgroud)
那么,我如何确保连接到实际主机而不是登录重定向页面?显然,我可以从我使用的'ping'主机检查实际的响应体,但它看起来不是一个合适的解决方案.
DateTime - JDK Calendar
DateMidnight的不可变替换 - 表示时间强制为午夜的不可变类
LocalDateTime - 表示本地日期和时间的不可变类(无时区)
我想知道你是如何在分层应用程序中使用这些类的.
我看到几乎所有接口都使用LocalDateTime(至少在服务层)的优势,这样我的应用程序就不必管理时区,并且可以安全地假设时间始终为UTC.然后,我的应用程序可以在执行流程的最开始使用DateTime来管理时区.
我也想知道DateMidnight在哪种情况下有用.
有没有办法将subversion工作副本从1.7版降级到1.6x版?
版本1.7使用单个.svn根文件夹和sqlite用于元数据,因此来自tigris.org的转换python脚本不起作用.
您是否知道一个解决方案不涉及在v1.6下进行干净的结账并复制修改过的文件?
给定一个带有单个长字符串参数的命令,如:
mycommand -arg1 "very long string which does not fit on the screen"
Run Code Online (Sandbox Code Playgroud)
是否有可能以某种方式分割它,类似于如何分割单独的参数\
.
我试过了:
mycommand -arg1 "very \
long \
string \
which ..."
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
mycommand
是一个外部命令,因此不能修改为采用单个参数.
如何在wireguard中启用网络活动日志记录?
我搜索了查看服务器上日志的方法,但在/var/log
.
当它作为 systemd 服务运行时,我可以看到一些最少的信息
sudo systemctl status wg-quick@wg0
Run Code Online (Sandbox Code Playgroud)
但这提供的信息很少。
还试过:
journalctl -u wg-quick@wg0
Run Code Online (Sandbox Code Playgroud)
但这并没有比上一个命令显示更多。
理想情况下,我希望能够看到对等连接和(可选)正在发出的请求。
到目前为止,我发现的唯一有用的诊断命令是sudo wg show wg0
(或只是sudo wg
),但我希望有一种方法可以提高详细程度并实时显示。
可以通过使用第三方网络工具(例如tcpdump | grep 10.66.66
(假设隧道设置在10.66.66.x
)和上来了解哪些连接被启动nethogs
,但这仍然没有回答如何直接通过wireguard 进行连接的问题。
我对 Angular 非常陌生,我正在尝试创建一个比默认输入字段更长的表单。这是我当前的代码:
person.component.html
<form class="new-person-form">
<mat-card>
<mat-form-field>
<input matInput placeholder="Name">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Birthday">
</mat-form-field>
<mat-checkbox>Active</mat-checkbox>
</mat-card>
</form>
Run Code Online (Sandbox Code Playgroud)
person.component.css
.mat-form-field {
padding: 10px;
}
.mat-checkbox {
padding: 10px;
}
Run Code Online (Sandbox Code Playgroud)
person.component.html
<form class="new-person-form">
<mat-card fxLayout="row">
<mat-form-field>
<input matInput placeholder="Name" fxFlex="50">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Birthday" fxFlex="25">
</mat-form-field>
<mat-checkbox fxFlex="25">Active</mat-checkbox>
</mat-card>
</form>
Run Code Online (Sandbox Code Playgroud)
person.component.css
.mat-form-field {
padding: 10px;
}
.mat-checkbox {
padding: 10px;
}
Run Code Online (Sandbox Code Playgroud)
这是结果:
| |
| Name___________ Birthday_______ [] Active |
| |
Run Code Online (Sandbox Code Playgroud)
我试图加长Name
到页面的 50% 左右,所以是这样的:
| …
Run Code Online (Sandbox Code Playgroud) 有没有人设法从Subversion 1.8降级到Subversion 1.7?http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py上提供的脚本仅处理Subversion,最高可达1.6.
在3之前的BeautifulSoup版本中,我可以使用任何一块HTML并以这种方式获取字符串表示:
from BeautifulSoup import BeautifulSoup
soup3 = BeautifulSoup('<div><b>soup 3</b></div>')
print unicode(soup3)
'<div><b>soup</b></div>'
Run Code Online (Sandbox Code Playgroud)
但是使用BeautifulSoup4时,相同的操作会创建其他标签:
from bs4 import BeautifulSoup
soup4 = BeautifulSoup('<div><b>soup 4</b></div>')
print unicode(soup4)
'<html><body><div><b>soup 4</b></div></body></html>'
^^^^^^^^^^^^ ^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
我不需要<html><body>..</body></html>
BS4添加的外部标签.我查看了BS4文档并在类中搜索但是找不到任何设置来抑制输出中的额外标记.我该怎么做?降级到V3是不是一种选择,因为在BS3中使用的SGML解析器不近的一样好lxml
或html5lib
可用以BS4解析器.
我试图通过使用鼠标拖动列分隔符(或调整占位符大小)来动态调整css网格布局框的大小.
我resize: horizontal;
在nav
元素上设置了调整大小,当我在元素的右下角拖动小调整大小手柄时它会被调整大小,但相邻列的宽度不会自动调整而导致重叠.这是一个破碎的codepen.
HTML:
<main>
<nav>#1</nav>
<header>#2</header>
<section>#3</section>
</main>
Run Code Online (Sandbox Code Playgroud)
CSS:
main {
display: grid;
border: 3px dotted red;
grid-gap: 3px;
grid-template-columns: 200px 1fr;
grid-template-rows: 100px 1fr;
height: 100%;
}
nav {
grid-column: 1;
grid-row: 1;
grid-row: 1 / span 2;
resize: horizontal;
overflow: scroll;
border: 3px dotted blue;
}
Run Code Online (Sandbox Code Playgroud)
我希望css网格引擎自动处理这种情况,但显然它没有.
我尝试使用jquery-ui可调整大小,但它似乎不适用于css网格.
我正在研究如何通过将grid属性grid-template-columns/rows:
设置为动态值来使用jquery来完成它,但是不清楚如何通过resize句柄调整元素大小来捕获抛出的事件.jquery resize事件仅在window
对象上触发,而不是在dom元素上触发.
在不必处理像dragstart/dragend这样的低级鼠标事件的情况下,可能有什么办法呢?
我需要检查map是否包含列表中的任何键,如果是,则返回第一个匹配值.想到的天真方法是在两个嵌套循环中进行:
Map<String, String> fields = new HashMap<String, String>();
fields.put("a", "value a");
fields.put("z", "value z");
String[] candidates = "a|b|c|d".split("|");
for (String key : fields.keySet()){
for (String candidate : candidates) {
if (key.equals(candidate)){
return fields.get(key);
}
}
}
Run Code Online (Sandbox Code Playgroud)
是否有更好,更有效的方式,可能依赖Java标准库?