我想用Java获取我的Internet IP地址,但是当我的IP地址是192.168.0.xxx时,我一直得到我的本地地址(即:127.0.0.1)
我正在使用这条线:
InetAddress.getLocalHost().getHostAddress();
Run Code Online (Sandbox Code Playgroud)
这似乎是获取IP地址的标准,但它不是我想要的.每个教程都说使用这一行,所以我有点困惑.
谁能告诉我如何获得正确的IP地址?
我正在运行连接到WiFi的设备,而我没有使用任何电缆.我使用ifconfig inet addr给出的IP连接到服务器,我希望得到设备的inet addr.我可以检查服务器端套接字的IP,但是如果设备(客户端)告诉服务器他希望其他设备连接哪个IP,那就更好了.
我想弄清楚我们的局域网中有哪些设备在线和离线.我见过许多程序在进行一种图形网络概述,提供局域网IP和MAC地址.我想知道是否以及如何从C#/ .NET中提取这些(ARP?)信息?
任何示例代码片段/链接将不胜感激.
我有一个UDP套接字绑定到INADDR_ANY来监听我的服务器上的所有IP数据包.我通过同一个套接字发送回复.
现在,当发送数据包时,服务器会自动选择将哪个IP用作源IP,但我希望能够自己设置传出源IP.
有没有办法做到这一点,而无需为每个IP创建一个单独的套接字?
根据我的知识,如果必须设计互联网应用程序,我们应该使用面向连接的服务或无连接服务,但不能同时使用两者.
Internet的面向连接的服务是TCP,无连接服务是UDP,它们都驻留在Internet协议栈的传输层中.
Internet唯一的网络层是IP,这是一种无连接服务.所以它意味着我们设计的任何应用程序最终都使用IP来传输数据包.
面向连接的服务使用相同的路径来传输所有数据包,而无连接则不会.
因此我的问题是
如果设计了面向连接的应用程序,它应该使用相同的路径传输数据包.但IP通过使用不同的路由打破了规则.那么TCP和IP如何在这个意义上协同工作?这让我很困惑.
是哪些IP分配给哪些ISP的公共信息?地理IP服务如何获取此信息并维护此信息?
如何在不使用其中一种服务的情况下亲自了解某个IP所属的位置?
如何获取网关IP详细信息,有使用wifimanager的选项但是.如果没有wify如何在使用usb tethering连接时在android设备中找到网关,dns和其他细节.
对于我正在处理的程序,我必须检查IP(连接到Internet的IP)是公共还是私有.为此,我需要区分IP是IPv4还是IPv6.
我想根据IP的长度来检查它:
conn, err := net.Dial("udp", "8.9.10.11:2342")
if err != nil {
fmt.Println("Error", err)
}
localaddr := conn.LocalAddr()
addr, _ := net.ResolveUDPAddr("udp", localaddr.String())
ip := addr.IP
fmt.Println(ip)
fmt.Println(len(ip))
Run Code Online (Sandbox Code Playgroud)
好吧,我的IP是192.168.2.100,所以IPv4,但len(ip)告诉我长度是16,这将是IPv6.我的错是什么?是否存在区分IPv4和IPv6的其他方法?
我在ubuntu 14.04上运行它并设置docker0为静态IP,然后通过防火墙从公共IP路由到.我正在尝试将我的后端API设置为在docker容器中运行,并且被一些事情搞糊涂了.
1.)我如何将docker0ip 映射到容器的ip,以便docker0知道将传入的数据包发送到容器(如果可能,动态地).
2.)如果还没有以这种方式完成,我怎么能这样做,以便每当我重新运行该docker容器时我都不必设置它?
提前致谢!
我正在使用docker-compose来构建一个完整的开发堆栈.
该应用程序需要一个mysql服务器才能工作.
mysql服务器是docker-compose设置的外部容器:
mysql:
image: mysql:5.6
volumes:
- /data/mysql:/var/lib/mysql
- ./docker/mysql.d:/etc/mysql/conf.d
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: password
Run Code Online (Sandbox Code Playgroud)
该应用程序有自己的docker-compose.yml并引用mysql容器:
my-application:
build: . # the Dockerfile resides in the current folder
ports:
- "9180:80"
- "9543:443"
external_links:
- mysql_mysql_1:mysql
environment:
DOCKER_ENVIRONMENT: dev
DB_NAME: local_db
DB_PASS: password
DB_USER: root
DB_HOST: # how to set the mysql's IP address?
Run Code Online (Sandbox Code Playgroud)
我无法在docker-compose中传递它们,因为它是动态的.
我知道应用程序知道mysql IP地址,因为我设置了某些变量:
application-container$ env|grep ADDR
MYSQL_PORT_3306_TCP_ADDR=172.17.0.241
Run Code Online (Sandbox Code Playgroud)
然而,这不是我的要求DB_HOST.
我可以以某种方式映射变量DB_HOST或以不同方式设置它吗?