小编ccp*_*zza的帖子

如何检查无限制的Internet访问?(强制门户检测)

我需要可靠地检测设备是否具有完全的互联网访问权限,即用户不仅限于强制网络门户(也称为围墙花园),即有限的子网强制用户在表单上提交凭据以便获得满访问.

我的应用程序正在自动执行身份验证过程,因此在开始登录活动之前知道完全互联网访问不可用非常重要.

问题在于如何检查网络接口是否已启动且处于连接状态.它是关于确保设备具有不受限制的互联网访问,而不是沙盒内部网段.

到目前为止我尝试过的所有方法都失败了,因为连接到任何知名主机都不会抛出异常但返回有效的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'主机检查实际的响应体,但它看起来不是一个合适的解决方案.

authentication redirect android http connectivity

35
推荐指数
2
解决办法
2万
查看次数

Joda-Time:DateTime,DateMidnight和LocalDate用法

Joda-Time库包含不同的日期时间

DateTime - JDK Calendar
DateMidnight的不可变替换 - 表示时间强制为午夜的不可变类
LocalDateTime - 表示本地日期和时间的不可变类(无时区)

我想知道你是如何在分层应用程序中使用这些类的.

我看到几乎所有接口都使用LocalDateTime(至少在服务层)的优势,这样我的应用程序就不必管理时区,并且可以安全地假设时间始终为UTC.然后,我的应用程序可以在执行流程的最开始使用DateTime来管理时区.

我也想知道DateMidnight在哪种情况下有用.

java datetime interface jodatime

31
推荐指数
1
解决办法
2万
查看次数

如何将subversion树从v1.7降级到v1.6?

有没有办法将subversion工作副本从1.7版降级到1.6x版?

版本1.7使用单个.svn根文件夹和sqlite用于元数据,因此来自tigris.org的转换python脚本不起作用.

您是否知道一个解决方案不涉及在v1.6下进行干净的结账并复制修改过的文件?

svn

24
推荐指数
3
解决办法
3万
查看次数

Bash:将长字符串参数拆分为多行?

给定一个带有单个长字符串参数的命令,如:

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 是一个外部命令,因此不能修改为采用单个参数.

bash multiline

23
推荐指数
2
解决办法
2万
查看次数

Wireguard:如何记录网络活动?

如何在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 进行连接的问题。

vpn logging wireguard

22
推荐指数
0
解决办法
1万
查看次数

为角材料设置输入 mat-form-fields 的宽度

我对 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)

javascript angular-material angular-flex-layout angular

20
推荐指数
4
解决办法
4万
查看次数

将Subversion 1.8工作副本降级为1.7

有没有人设法从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.

svn macos

18
推荐指数
3
解决办法
2万
查看次数

如何防止BeautifulSoup4在汤中添加额外的<html> <body>标签?

在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解析器不近的一样好lxmlhtml5lib可用以BS4解析器.

python beautifulsoup

16
推荐指数
1
解决办法
3727
查看次数

使用鼠标动态调整css网格布局中的列

我试图通过使用鼠标拖动列分隔符(或调整占位符大小)来动态调整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这样的低级鼠标事件的情况下,可能有什么办法呢?

javascript css jquery resize css-grid

15
推荐指数
2
解决办法
2万
查看次数

查找map是否包含list/iterable中的任何键的有效方法

我需要检查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标准库?

java arrays iteration dictionary

14
推荐指数
6
解决办法
5万
查看次数