我应该使用binary(16)或varbinary(16)?
我知道我可以使用 getAddress()的java.net.InetAddress(JAVA)或System.Net.IPAddress(C#),以获得一个byte[]双方的表现IPv4和IPv6,但如果我需要插入IPv4即binary(4)进入binary(16)场中SQL Server,做我需要担心填充或什么?
我用我的电脑通过以太网与一块硬件进行通信.要与此设备通信,我将ip设置为192 168 0 11,将子网掩码设置为255 255 255 0,将默认网关设置为192 168 0 1 for IPv4.要使用互联网,我选择"通过控制面板自动获取IP地址".
我想要一个脚本,允许我快速选择一个或另一个以太网设置 - 硬件或互联网.
我主要在python中编程,但也许有一个批处理文件解决方案.
谢谢,
巴里.
既然我们都在转向IPv6,无论我们是否愿意,我都会问:IPv5发生了什么?对于它的哥哥来说,它不够酷,还是在那个规范上做了其他事情?
我已经创建了一些网络应用程序,使用Rook它可以在端口8000监听我的网络IP(192.168.xx.xx).我办公室内的每个人都可以http://192.168.xx.xx:8000/page_name在浏览器中输入它们.我需要监控这些页面的使用情况,并想知道如何获取连接到它们的网络IP地址.
我在网络开发方面没有经验,而且从迄今为止所做的研究来看,使用客户端代码似乎JavaScript很难(几乎不可能)实现这一点,(如果我错了,请纠正我).所以,我的问题是:有没有办法在Rook应用程序中使用服务器端代码获取网络客户端ip?(如果需要,我愿意更改网络服务器,任何解决方案都赞赏).
如果我的问题看起来令人困惑,请提前致谢和抱歉...特别是我不确定是否需要其他标签.
编辑:我也会接受使用不同于Rook(但仍在R)的东西的答案
编辑2:我在此链接后设置了Shiny Server .我正在配置服务器,以便获得access_log它,根据@Thell,包含我需要的信息.在shiny-server.conf我已经添加了相关声明,现在是:
run_as shiny;
server {
listen 3838;
location / {
site_dir /var/shiny-server/www;
log_dir /var/shiny-server/log;
directory_index on;
}
}
access_log /home/michelec/log.txt;
Run Code Online (Sandbox Code Playgroud)
最后一行应该告诉有光泽将access_log写入我的主文件夹.然而,没有任何事情发生,日志仍为空白.根据这里,在Formats部分,我应该收到以下日志之一:
default ':remote-addr - - [:date] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"'
short ':remote-addr - :method :url HTTP/:http-version :status :res[content-length] - :response-time ms'
tiny ':method :url :status :res[content-length] - :response-time ms'
dev concise …Run Code Online (Sandbox Code Playgroud) 我通过保存$_SERVER['REMOTE_ADDR']MySQL数据库中的值来保存用户的IP地址.问题是Firefox和Chrome $_SERVER['REMOTE_ADDR']都是::1(这意味着IPv6中的 localhost ),IE和Opera是127.0.0.1(IPv4).
所以,我的问题是
IP版本是否依赖于浏览器?(我以前认为它取决于计算机)
我应该在数据库中创建两个字段,一个用于IPv4地址,一个用于IPv6地址?
我应该将所有IP统一到IPv6吗?我怎样才能在PHP中实现这一点(如果可能的话)?
我希望能够在我的表中存储IPv4和IPv6地址.无论是IPv4还是IPv6地址,存储用户IP地址的最有效方法是什么?
这将在生产环境中使用,因此未来的证据建议是首选.
简短而简单的问题:我是新手boost::asio,我想知道是否有可能同时tcp::acceptor监听IPv4和IPv6连接.关于boost主页的教程显示如下:
_acceptor = new tcp::acceptor(_ioService, tcp::endpoint(tcp::v4(), 3456));
Run Code Online (Sandbox Code Playgroud)
始终使用特定协议指定端点.是否无法同时在同一端口上侦听IPv4和IPv6?
我需要在Node.js中查找给定主机到其对应的IP.似乎有两种本地方法:
> dns.resolve('google.com', (error, addresses) => { console.error(error); console.log(addresses); });
QueryReqWrap {
bindingName: 'queryA',
callback: { [Function: asyncCallback] immediately: true },
hostname: 'google.com',
oncomplete: [Function: onresolve],
domain:
Domain {
domain: null,
_events: { error: [Function] },
_eventsCount: 1,
_maxListeners: undefined,
members: [] } }
> null
[ '216.58.194.174' ]
Run Code Online (Sandbox Code Playgroud)
和:
> dns.lookup('google.com', (error, address, family) => { console.error(error); console.log(address); console.log(family); });
GetAddrInfoReqWrap {
callback: { [Function: asyncCallback] immediately: true },
family: 0,
hostname: 'google.com',
oncomplete: [Function: onlookup],
domain:
Domain { …Run Code Online (Sandbox Code Playgroud) 我在端口5403上运行node.js服务器.我可以在这个端口上远程访问私有IP,但是无法在同一端口上telnet到公共ip.
我假设这是因为node.js只是在监听ipv6.这是结果
netstat -tpln
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
PID/Program name
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN
-
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
-
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
-
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
-
tcp6 0 0 :::5611 :::* LISTEN
25715/node
tcp6 0 0 …Run Code Online (Sandbox Code Playgroud) ipv4 ×10
ipv6 ×8
ip-address ×2
networking ×2
node.js ×2
android ×1
batch-file ×1
boost-asio ×1
browser ×1
c++ ×1
dns ×1
inetaddress ×1
ip ×1
javascript ×1
mysql ×1
netstat ×1
php ×1
python ×1
r ×1
shiny-server ×1
sql-server ×1
standards ×1
t-sql ×1
ubuntu ×1
windows ×1
windows-7 ×1