我正在写一些处理URL的代码,我想确保我不会遗漏一些奇怪的案例......
除了以下主机之外是否有任何有效字符:AZ,0-9," - "和"."?
(这包括可以在子域中的任何东西,等等.基本上,在//和第一个/之间的任何东西)
谢谢!
在下面的ip地址验证中,我想看看它是否是一个有效的IP地址,我怎么能用下面的re做到这一点
>>> ip="241.1.1.112343434"
>>> aa=re.match(r"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}[^0-9]",ip)
>>> aa.group()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'
Run Code Online (Sandbox Code Playgroud) 我尝试使用此代码验证IP地址,但它不起作用......
public static bool IP(string ipStr)
{
string pattern = @"^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$";
Regex check = new Regex (pattern);
bool valid = false;
if (ipStr == "") {
valid = false;
} else {
valid = check.IsMatch (ipStr, 0);
}
return valid;
}
Run Code Online (Sandbox Code Playgroud)
知道什么是错的吗?
有没有办法在C中使用非贪婪的正则表达式,就像可以在Perl中使用?我尝试了几件事,但实际上并没有用.
我目前正在使用这个匹配IP地址和相应的HTTP请求的正则表达式,但它很贪婪,虽然我使用*?:
([0-9]{1,3}(\\.[0-9]{1,3}){3})(.*?)HTTP/1.1
在此示例中,它始终匹配整个字符串:
#include <regex.h>
#include <stdio.h>
int main() {
int a, i;
regex_t re;
regmatch_t pm;
char *mpages = "TEST 127.0.0.1 GET /test.php HTTP/1.1\" 404 525 \"-\" \"Mozilla/5.0 (Windows NT HTTP/1.1 TEST";
a = regcomp(&re, "([0-9]{1,3}(\\.[0-9]{1,3}){3})(.*?)HTTP/1.1", REG_EXTENDED);
if(a!=0)
printf(" -> Error: Invalid Regex");
a = regexec(&re, &mpages[0], 1, &pm, REG_EXTENDED);
if(a==0) {
for(i = pm.rm_so; i < pm.rm_eo; i++)
printf("%c", mpages[i]);
printf("\n");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
$ ./regtest
127.0.0.1 GET /test.php HTTP/1.1"404 525" - ""Mozilla/5.0(Windows NT HTTP/1.1
我在Rails 4应用程序上遇到以下错误:
ActionDispatch :: RemoteIp :: IpSpoofAttackError:IP欺骗攻击?!HTTP_CLIENT_IP ="xx.xx.xx.xx"HTTP_X_FORWARDED_FOR ="xx.xx.xx.xx"
我们不需要这种类型的安全检查,所以经过一些谷歌搜索我发现:
https://github.com/rails/rails/issues/10780
当中间代理在HTTP_CLIENT_IP和HTTP_X_FORWARDED_FOR中插入用户IP地址,并且此地址是私有的时,ActionDispatch :: RemoteIp会引发IpSpoofAttackError异常.
当企业代理在标头中包含用户的IP地址时,这通常是私有的.只有当地址与HTTP_CLIENT_IP中找到的地址不完全匹配时,才应该从HTTP_X_FORWARDED_FOR中包含的链中删除私有IP地址.如果匹配,那应该是用户的IP地址.
例如,在以下环境中会发生这种情况:
HTTP_CLIENT_IP:172.17.19.51 HTTP_X_BLUECOAT_VIA:ffffffffffffffff HTTP_X_FORWARDED_FOR:172.17.19.51 REMOTE_ADDR:xxx.xxx.xxx.xxx(这将是一个公共IP地址)
这里有一个修复:
作为解决方法,我在config/application.rb中禁用了此检查:
config.action_dispatch.ip_spoofing_check = false
然而,这似乎不适用于Rails 4.什么是新的调用,如何在网站范围内设置它?
有没有办法使用php检测字符串是否是Ip或域,如下所示.
$string = "http://192.168.0.0";
$string = "http://example.com";
Run Code Online (Sandbox Code Playgroud)
因此,如果字符串是IP,那么如果脚本/函数将其检测为域,它将执行某些操作,它将执行其他操作.
谢谢
从给定的字符串:
String someIp = // some String
Run Code Online (Sandbox Code Playgroud)
如果someIp是有效的Ip格式,我如何检查?
我很擅长使用"基本的"?unix命令和这个问题让我的知识更加值得考验.我想做的是从日志中grep所有IP地址(例如来自apache的access.log)并计算它们发生的频率.我可以使用一个命令执行此操作,还是需要为此编写脚本?
我需要在我的项目中添加IP验证.在jquery或jquery mobile中有任何函数.那么它将验证输入字段吗?
谢谢
我有一个NSTextField地方,我要求用户输入一个IPv4格式的字符串,或域名,如www.example.com.目前,我的代码是:
@IBAction func verifyTarget(sender: NSTextFieldCell) {
var txtTarget: NSTextFieldCell = sender
var strRawTarget: String? = txtTarget.stringValue
println("Input: " + strRawTarget!)
var URLTarget: NSURL?
URLTarget = NSURL.URLWithString(strRawTarget)
if URLTarget {
println("URL \(URLTarget) is valid!")
}
else {
println("URL \(strRawTarget) is not valid!")
}
}
Run Code Online (Sandbox Code Playgroud)
一些示例输出:
Input:
URL is valid!
Input: adsfasdf
URL adsfasdf is valid!
Input: afe12389hfs. . afopadsf
URL afe12389hfs. . afopadsf is not valid!
Input: 192.292.111.3
URL 192.292.111.3 is valid!
Input: 0.a.0.a
URL 0.a.0.a is …Run Code Online (Sandbox Code Playgroud)