我想和异地的朋友进行通信。假如我和异地的朋友IP地址一样,我的电脑将如何封装数据包?
IP地址是用于在互联网上标识计算机或设备的唯一数字地址。如果你和异地的朋友IP地址相同,那么在发送数据包时,你们的数据包将带有相同的源IP地址。
在封装数据包时,你的计算机将在IP数据包头中包含你的IP地址作为源地址,然后将你朋友的IP地址作为目标地址。这样,数据包就能够被正确地路由到你的朋友的计算机,而不会被路由到你自己的计算机上。
需要注意的是,IP地址相同可能是因为使用了NAT(网络地址转换)技术,这种情况下多个计算机可能共享同一个IP地址。在这种情况下,你和你的朋友的计算机之间仍然有不同的内部IP地址,网络数据包会在NAT设备上进行转换以确保数据能够正确地传输。
望采纳!
不在一个局域网下的时候,你的数据包转发都是使用的公网IP,这是不可能相同的
import java.util.Scanner;
public class MyTest {
public static void main(String[] args) {
/*
* 如何判断一个字符串是否为合法的IP地址。
*/
Scanner sc=new Scanner(System.in);
String test=sc.nextLine();
// ip地址最短7位最长15位
if (test.length() < 7 || test.length() > 15) {
System.out.println("不合法,长度不对");
} else {
String[] TheFigures = test.split("\\.");
if (TheFigures.length!= 4) {
System.out.println("不合法,不是4个串-------"+TheFigures.length);
} else {
//对每个字符串进行判断是否是规定的数字
boolean flag=true;//定义一个标志位
long sum=0;
for(int i=0;i<TheFigures.length;i++) {
char [] cr=TheFigures[i].toCharArray();
//遍历每个串里的字符
for (char chr:cr) {
char ling='0';
int ch=chr-ling;
if(ch<0 | ch>9) {
flag=false;
System.out.println("不合法,有非数字---ASCII值为"+ch+"字符是"+chr);
break;
}
}
sum=sum+Integer.parseInt(TheFigures[i]);
if(flag) {
int figInt=Integer.parseInt(TheFigures[i]);
if(figInt<0 || figInt>255) {
flag=false;
break;
}
}
}
if(flag && sum!=0 ) {
System.out.println("合法啦!");
}else {
System.out.println("不合法!");
}
}
}
}
}
ip一样也没用啊,不是在同一个局域网中
你的假设首先就不成立。