我有一些函数在php中使用stream_socket_client(而不是curl)我有多个eth1 eth2 ...等接口与不同的ips所以我想在我作为客户端连接时使用不同的接口,我可以这样做吗?我在php.ini中找不到任何选项
我使用以下代码来接收连接:
socat TCP-LISTEN:4000,fork EXEC:"./myscrpit"
我需要在我的脚本中有一个发件人的IP地址但是SOCAT_PEERADDR
没有设置,问题是什么?
我们在不同的计算机上有客户端的主程序和代理(两者).网络配置可以是任何类型(我们不知道).代理连接到主程序,目前我们只能获取IP和计算机名称作为信息.如何区分两个IP是否属于同一台计算机?
计算机可能有多个以太网卡.
谢谢.
阅读后:用Java获取"外部"IP地址
码:
public static void main(String[] args) throws IOException
{
URL whatismyip = new URL("http://automation.whatismyip.com/n09230945.asp");
BufferedReader in = new BufferedReader(new InputStreamReader(whatismyip.openStream()));
String ip = in.readLine(); //you get the IP as a String
System.out.println(ip);
}
Run Code Online (Sandbox Code Playgroud)
我以为我是胜利者,但我得到以下错误
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 403 for URL: http://automation.whatismyip.com/n09230945.asp
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at getIP.main(getIP.java:12)
Run Code Online (Sandbox Code Playgroud)
我认为这是因为服务器没有足够快的响应,无论如何确保它将获得外部IP?
编辑:好吧所以它被拒绝,其他人都知道另一个可以做同样功能的网站
我有这个清单:
['192', '168', '0', '1', '80', '192', '168', '0', '2', '8080']...
Run Code Online (Sandbox Code Playgroud)
我想得到这个清单:
['192.168.0.1:80', '192.168.0.2:8080']...
Run Code Online (Sandbox Code Playgroud)
这样做的最佳方式是什么?
使用range
与list
流行?
用list
切片?
我正在管理一个Web平台,并希望获取一些统计数据,这些数据来自我的用户。我可以存储远程IP,并且我知道有些本地化服务可将IP映射到地理位置。
该映射如何完成?是否有固定表,哪个IP地址分配给哪个区域?
我必须在访问时请求映射,还是可以在几天/几个月/年后请求它?换句话说:从IP到位置的映射是固定的还是随时间变化的?
我认为最初问这个问题的人可能试图问这个"如何使用javascript或php获取访问者或用户的IP地址,ISP,县和城市?
----------这条线下面是张贴的,所以我离开了它----------
我知道用PHP获取IP地址的方法是$_SERVER['REMOTE_ADDR'];
,但有没有办法用JavaScript,比如第三方网站.另外,我如何获得ISP,国家等.
在我的C程序中,我getaddrinfo
用来从主机名获取IP地址,并getnameinfo
从IP地址获取主机名。这两个功能是互补的。我读到man getaddrinfo
我必须使用freeaddrinfo()
函数释放为动态分配的链表分配的内存res
。因此,我的代码如下所示:
if ((err = getaddrinfo(argv[1], NULL, &hints, &res)) != 0) {
printf("error %d\n", err);
return 1;
}
addr.s_addr = ((struct sockaddr_in *)(res->ai_addr))->sin_addr.s_addr;
printf("%s\n", inet_ntoa(addr));
freeaddrinfo(res);
Run Code Online (Sandbox Code Playgroud)
但是因为getnameinfo
我看不到任何类似的功能,即freenameinfo
。
为什么在使用时我需要释放getaddrinfo
而不是释放getnameinfo
。为什么我需要完全腾出空间?较早时,我gethostbyaddr
不需要释放内存。为什么这不同。
getaddrinfo
over 的优点是gethostbyaddr
什么?后者已弃用,仅应使用前者吗?为什么呢
我记录了用户的IP地址.由于IP地址包含句点,我将它们存储为字符串.但我想通过尝试将它们保存为整数来尝试节省我的服务器空间.
我考虑过这样做:
@user_ip = request.remote_ip.delete(".").to_i
Run Code Online (Sandbox Code Playgroud)
例如,将"127.0.0.1"转换为127001
.
但是我担心在这种方法下可以将两个不同的IP地址保存为相同的整数.
那可能吗?如果是这样,有没有更好的方法将IP地址保存为整数?
www.facebook.com
当我请求不同的网址(比方说www.x.lk
)特定网站时,我映射了一个IP的网站来加载Facebook .它运作良好.但是当我试图映射反向时,它应该www.x.lk
在我要求Facebook时加载,它不起作用.最初的Facebook网站正在加载.问题是什么?有人可以帮我从这里出去吗?
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at …
Run Code Online (Sandbox Code Playgroud) ip ×10
java ×2
php ×2
tcp ×2
bind ×1
c ×1
geolocation ×1
hosts ×1
integer ×1
interface ×1
javascript ×1
list ×1
mapping ×1
networking ×1
parameters ×1
python ×1
ruby ×1
socat ×1
string ×1