标签: ip

IP地址验证

我正在重构我的代码,并希望使用该IPAddress.TryParse方法来验证字符串是否是有效的IPv4地址而不是使用正则表达式:

public static bool IsIPv4(string value)
{
    IPAddress address;

    if (IPAddress.TryParse(value, out address))
    {
        if (address.AddressFamily == AddressFamily.InterNetwork)
        {
            return true;
        }
    }

    return false;
}
Run Code Online (Sandbox Code Playgroud)

我的单元测试现在失败了,因为这些输入值返回true并被解析为以下IPAddress对象:

value = "0.0.0.0"      ->  address = {0.0.0.0}
value = "255.255.255"  ->  address = {255.255.0.255}
value = "65536"        ->  address = {0.1.0.0}
Run Code Online (Sandbox Code Playgroud)

这有意义吗?我可以看到这0.0.0.0在技​​术上是一个有效的IPv4地址,即使用户输入它也没有意义.那两个呢?为什么他们以他们的方式进行转换,我应该将它们视为有效,即使它对用户来说可能不是透明的,用户可能只是忘记输入句点(65536而不是6.5.5.36).

任何帮助都非常感谢.

.net c# ip validation parsing

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

没有NTP的小占用时钟同步

我正在寻找一种简单的时钟同步协议,该协议易于实现,占用空间小,并且在没有互联网连接的情况下也可以工作,因此可以在封闭的实验室网络中使用.为了清楚起见,我不是在寻找可以仅用于命令事件(例如矢量时钟)的东西,而是能够使不同节点上的进程基于本地时钟同步其动作的东西.据我了解,这需要一个可以考虑时钟漂移的解决方案.可以假设存在TCP/IP或类似的相对低延迟的流连接.

ip networking distributed synchronization clock

14
推荐指数
2
解决办法
3751
查看次数

如何测试到IP地址和特定端口的出站连接?

好的,我们都知道如何使用PING来测试与IP地址的连接.我需要做的是类似的事情,但测试我对给定IP地址的出站请求以及特定端口(在本例中为1775)是否成功.应该最好从命令提示符执行测试.

ip

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

如何通过控制端口获取Tor出口节点IP地址?

我想监视运行Tor实例的状态.

我已经能够通过TCP连接获取信息到控制端口.例如,"GETINFO stream-status"返回数据,但我无法确定当前所选退出节点的IP地址.

可以简单地请求像whatismyip.org这样的东西,但这太慢了,并且不能很好地扩展.

那么获得Tor连接的出口节点IP地址的最佳方法是什么?

ip exit tor

14
推荐指数
2
解决办法
8413
查看次数

我可以从IP地址获得哪些信息?

如果您有一组计算机的IP地址(在LAN中),可以从中推断出哪些其他信息?例如,有没有办法找出每个IP背后的计算机运行的操作系统?

ip operating-system lan ip-address

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

Windows Phone 8中的IP地址

我需要找到运行我的软件的手机的IP地址.我本以为这是直截了当的但是在论坛上搜索似乎(令人难以置信的是)在Windows Phone 7中没有这种方法 - 但是,这在Windows Phone 8中有所改变吗?任何帮助,将不胜感激.

ip windows-phone-8

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

Rails - 如何获取访问者的IP地址?

我需要将访问者的IP地址存储到我们的数据库中,这是我尝试这样做的方式:

@ip = request.remote_ip
@ip = request.env['REMOTE_ADDR']
Run Code Online (Sandbox Code Playgroud)

但在这两种情况下,即使我将应用程序部署到Amazon EC2实例,该@ip变量也存储了值127.0.0.1.

当我检查http://www.whatismyip.com/,它表明我的IP为109.175.XXX.X.

那么,为什么ruby变量总是显示127.0.0.1地址?我如何获得真正的IP?


编辑: 这是以下输出:

request.env['HTTP_X_FORWARDED_FOR'] => 
request.remote_ip => 127.0.0.1
request.env['REMOTE_ADDR'] => 127.0.0.1
request.ip => 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

我认为问题就在我身边,但我发送了3个朋友的链接,所有人都看到了相同的IP,只有127.0.0.1.

我整天都在解决这个问题但仍然没有成功.

谢谢

ruby ip ruby-on-rails request

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

按请求登录Node.js

我是一位经验丰富的Java开发人员,负责收集Node.js并转向异步模型.除了伐木以外,大多数事情都很顺利.在使用express的Node.js中进行开发时,我在Java中找不到类似于log4j和NDC的任何内容.

我的目标是让每个日志语句自动添加以下信息:

[2013-11-07 11:17:04.615 serverScript INFO 7036 192.168.7.209]

这包括时间戳,编写此语句的js文件的名称(对于模块化节点应用程序),调试级别,进程ID(运行集群)和客户端的IP地址.

我可以在最初进入我的请求处理程序时编写它们,但是如果没有将一堆参数传播到每个被调用的函数,子例程中的记录器语句就没有信息.我知道我可以在每个初始化其名称的js文件中创建我的记录器实例,但我还没有找到客户端IP地址的解决方案.对于运行时间较长的请求,我在记录器中设置的地址会在下一个请求进入时被覆盖,因此记录的IP会被越过.

我看过温斯顿,但即使用它也无法解决这个问题.有没有人完成这个?当您可以按IP过滤以仅查看一个用户的活动时,跟踪字段问题非常有用.

[编辑:从参数传递解决方案测试,直到我学习syslog方式]

[2013-11-07 14:29:28.641 server INFO  7527 192.168.7.209] Got request from 192.168.7.209 for /ionmed/executeQuery?
[2013-11-07 14:29:28.641 router INFO  7527 192.168.7.209] About to route a request for /ionmed/executeQuery, method=POST
[2013-11-07 14:29:28.642 router INFO  7527 192.168.7.209] getting POSTed data
[2013-11-07 14:29:28.642 router INFO  7527 192.168.7.209] POST params: {"sqlQuery":"select sleep(10)","sessionStart":"1383852558799","rand":"0.5510970998368581","jsessionid":"117DBAA89F599D923AF80D4AB171BDDF"}
[2013-11-07 14:29:28.642 requestHandlers INFO  7527 192.168.7.209] 'query' was called.
[2013-11-07 14:29:28.642 requestHandlers INFO  7527 192.168.7.209] select sleep(10)
[2013-11-07 14:29:30.673 server INFO  7527 192.168.7.217] …
Run Code Online (Sandbox Code Playgroud)

ip logging node.js

14
推荐指数
1
解决办法
2349
查看次数

如何在路由数据包中使用MAC地址?

我最近发现数据包封装在以太网帧中.数据包使用IP地址,帧使用MAC地址.

为什么以太网帧中没有使用IP地址进行路由?据我所知,在尝试访问基本网站时,计算机会转到DNS以查找与用户输入的域名相关的IP地址.计算机如何找到正确的MAC地址?

真的,MAC地址如何用于路由互联网流量?

谢谢

ip tcp

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

如何从本地接口获取所有地址和掩码?

如何从golang的本地接口获取所有地址和掩码?

我需要配置实际的网络掩码以及每个IP地址.

此代码不显示Windows 7中的网络掩码:

package main

import (
    "fmt"
    "log"
    "net"
)

func localAddresses() {
    ifaces, err := net.Interfaces()
    if err != nil {
        log.Print(fmt.Errorf("localAddresses: %v\n", err.Error()))
        return
    }
    for _, i := range ifaces {
        addrs, err := i.Addrs()
        if err != nil {
            log.Print(fmt.Errorf("localAddresses: %v\n", err.Error()))
            continue
        }
        for _, a := range addrs {
            log.Printf("%v %v\n", i.Name, a)
        }
    }
}

func main() {
    localAddresses()
}
Run Code Online (Sandbox Code Playgroud)

更新:此问题已在Go中修复:https://github.com/golang/go/issues/5395

ip networking ip-address go

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