ifconfig->的结果,这是我给TCP / IP套接字的IP地址

时间:2017-12-02 18:48:44

标签: c linux sockets ip

我有2个系统。我在两个系统上运行ifconfig。我通过wifi从移动热点访问互联网。我粘贴了两者的ifconfig输出。我猜两者的IP都是127.0.0.1(虽然我使用的是2种不同的手机)。我需要使用tcp / ip套接字在它们之间进行通信。请确认一下。如果我能得到一个c程序来找到自己的IP地址,那就更好了。如果两个IP相同,则需要更改其IP地址。为什么两台设备的IP相同?他们如何访问互联网?我的目标设备将是2个带有SIM卡的嵌入式设备,使用gprs进行套接字通信。

System1->

enp2s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 2c:56:dc:29:7f:66  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 233  bytes 15817 (15.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 233  bytes 15817 (15.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.43.26  netmask 255.255.255.0  broadcast 192.168.43.255
        inet6 2405:204:f184:563e:e0f8:7b7e:3ea4:244b  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::e9a9:9f55:2fd4:2255  prefixlen 64  scopeid 0x20<link>
        inet6 2405:204:f184:563e:f2da:16c6:1bd5:15ee  prefixlen 64  scopeid 0x0<global>
        ether 80:a5:89:3d:85:3b  txqueuelen 1000  (Ethernet)
        RX packets 403  bytes 307722 (307.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 945  bytes 134915 (134.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

系统2-&gt;

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:289 errors:0 dropped:0 overruns:0 frame:0
          TX packets:289 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:26628 (26.6 KB)  TX bytes:26628 (26.6 KB)

wlan0     Link encap:Ethernet  HWaddr e4:02:9b:84:a4:72  
          inet addr:192.168.43.217  Bcast:192.168.43.255  Mask:255.255.255.0
          inet6 addr: 2405:204:f184:563e:5d6b:9906:ff66:ab2c/64 Scope:Global
          inet6 addr: 2405:204:f184:563e:e602:9bff:fe84:a472/64 Scope:Global
          inet6 addr: fe80::e602:9bff:fe84:a472/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1659 errors:0 dropped:0 overruns:0 frame:0
          TX packets:964 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:545249 (545.2 KB)  TX bytes:179680 (179.6 KB)

1 个答案:

答案 0 :(得分:0)

首先,127.0.0.1是设备loopback地址,每个拥有网卡的设备都会拥有此地址。

现在根据你想要实现的目标我需要使用tcp / ip套接字在两者之间进行通信。如果您使用移动热点作为路由器,请确保两个设备都连接到一个热点,因此它们都在一个网络上,而不是两个不同的网络。

然后确保设备的防火墙允许您要使用的tcp端口上的入站/出站流量,并且您应该能够在两个设备之间进行通信。

使用连接到两个不同移动热点的设备(这被认为是两个不同的网络)将无法实现,因为移动电话没有可以添加端口转发规则的功能,允许来自互联网的流量,如路由器。