我正在努力使用HttpURLConnection和OutputStreamWriter.
代码实际到达服务器,因为我得到了有效的错误响应.发出POST请求,但服务器端没有收到任何数据.
任何有关正确使用此东西的提示都非常受欢迎.
代码在AsyncTask中
protected JSONObject doInBackground(Void... params) {
try {
url = new URL(destination);
client = (HttpURLConnection) url.openConnection();
client.setDoOutput(true);
client.setDoInput(true);
client.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
client.setRequestMethod("POST");
//client.setFixedLengthStreamingMode(request.toString().getBytes("UTF-8").length);
client.connect();
Log.d("doInBackground(Request)", request.toString());
OutputStreamWriter writer = new OutputStreamWriter(client.getOutputStream());
String output = request.toString();
writer.write(output);
writer.flush();
writer.close();
InputStream input = client.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
StringBuilder result = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
result.append(line);
}
Log.d("doInBackground(Resp)", result.toString());
response = new JSONObject(result.toString());
} catch (JSONException e){
this.e = e; …Run Code Online (Sandbox Code Playgroud) 我正在perl / mysql / iptables中研究像系统这样的分布式fail2ban。
从/ var / log / messages中提取ipv4地址是可行的,但是现在我想在汤中添加/ var / log / maillog。
我有一个perl正则表达式:[1]
/ (?:25[012345]|2[0-4]\d|1?\d\d?)\.
(?:25[012345]|2[0-4]\d|1?\d\d?)\.
(?:25[012345]|2[0-4]\d|1?\d\d?)\.
(?:25[012345]|2[0-4]\d|1?\d\d?) /x
Run Code Online (Sandbox Code Playgroud)
和来自maillog的一行:
v817YjcU016645: 194.102.60.190.host.ifxnetworks.com [190.60.102.194] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
Run Code Online (Sandbox Code Playgroud)
这里的正则表达式匹配194.102.60.190.host.ifxnetworks.com和[ 190.60.102.194]
在我的代码中($ IP是上面的正则表达式):
if ($line =~ m/($IP)/)
{
my ($ip) = $1;
Run Code Online (Sandbox Code Playgroud)
在这里找到第一个匹配的类似ip的字符串194.102.60.190.host.ifxnetworks.com
因此,我如何让正则表达式忽略以a结尾的ipv4 .
[1]为了提高可读性Perl支持/ x选项
我似乎无法理解这个问题。我有一个正则表达式,用于检查字符串是否包含有效的 CIDR 表示法地址。
(((?:25[012345]|2[0-4]\d|1?\d\d?)\.){3}(?:25[012345]|2[0-4]\d|1?\d\d?))(?:\/([1-9]|[1-2][0-9]|3[0-2]))(?![.\d])
这个东西可以在 Perl、PHP、Javascript 中运行,并x.x.x.x/8与y.y.y.y/32.
我尝试将它们更改\d为[[:digit:]]Nothing \\d:(
用于测试的测试脚本:
#!/bin/bash
if [ "$1" = "" ]
then
echo "Usage: $( basename $0) 123.456.789.0/12"
exit
fi
REGEX1='(((?:25[012345]|2[0-4]\d|1?\d\d?)\.){3}(?:25[012345]|2[0-4]\d|1?\d\d?))(?:\/([1-9]|[1-2][0-9]|3[0-2]))(?![.\d])'
REGEX2='(((?:25[012345]|2[0-4]\\d|1?\\d\\d?)\.){3}(?:25[012345]|2[0-4]\\d|1?\\d\\d?))(?:\\/([1-9]|[1-2][0-9]|3[0-2]))(?![.\\d])'
REGEX3='(((?:25[012345]|2[0-4][[:digit:]]|1?[[:digit:]][[:digit:]]?)\\.){3}(?:25[012345]|2[0-4][[:digit:]]|1?[[:digit:]][[:digit:]]?))(?:\\/([1-9]|[1-2][0-9]|3[0-2]))(?![.[[:digit:]]])'
REGEX=$REGEX3
if [[ $1 =~ $REGEX ]]
then
echo "$1 OK!"
else
echo "$1 Not OK! $REGEX"
fi
Run Code Online (Sandbox Code Playgroud)
有什么想法可以从这里去哪里吗?
更新。添加工作脚本:
#!/bin/bash
if [ "$1" = "" ]
then
echo "Usage: $( basename $0) 123.456.789.0/12"
exit
fi
REGEX='(((25[0-5]|2[0-4][0-9]|1?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|1?[0-9][0-9]?))(\/([8-9]|[1-2][0-9]|3[0-2]))([^0-9.]|$)'
if [[ $1 =~ $REGEX …Run Code Online (Sandbox Code Playgroud)