我正在创建一个FTP服务器。根据FTP规范,他们添加了一个名为LPRT的新命令。
其格式为LPRT 6,16,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,193,160
现在我可以使用下面的逻辑从中获取FTP端口。但是我也需要IPV6地址。
@Column
有人可以帮我从这个字符串中找到IPv6地址。
答案 0 :(得分:1)
LPRT和LPSV被认为已过时,请参阅https://www.iana.org/assignments/ftp-commands-extensions/ftp-commands-extensions.txt。要使用IPv6,请使用RFC2428中指定的EPSV和EPRT。
如果您仍然需要知道如何处理LPRT,请查看过时的RFC1639。例如:
LPRT 6,16,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,193,160
表示主机长度参数后面的16个数字是地址的字节,然后是2个字节的端口地址长度,即
[0000:0000:0000:0000:0300:0000:0000:0000]:49568
答案 1 :(得分:0)
我创建了一个执行此提取的程序
public static String longToIP(long[] ip) {
String ipString = "";
int flag = 0;
for (long crtLong : ip) {
if (flag == 2) {
ipString = ipString + ":";
flag = 0;
}
String s = Long.toHexString(crtLong & 0xFFFFFFFFL);
if (s.length() == 1) {
s = "0" + s;
}
ipString = ipString + "" + s;
flag++;
}
return ipString;
}
输入= {0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0}
OutPut = {0000:0000:0000:0000:0300:0000:0000:0000}