标签: network-interface

如何在C#.NET中获得准确的下载/上传速度?

我想用C#.NET我知道,它可以使用来计算通过网络接口,以获得准确的下载/上传速度GetIPv4Statistics().BytesReceived,并把线程睡眠一段时间.但是它没有给出我在浏览器中得到的输出.

.net c# network-interface

10
推荐指数
3
解决办法
3万
查看次数

Netem和虚拟接口

我需要模拟网络,引入例如随机延迟,我需要帮助才能使用NetEm.该场景包含两台Ubuntu 14.04机器:A和B.

A和B在eth1上具有IP地址192.168.0.1和192.168.0.2.为了避免混淆NIC eth1,我设置了虚拟接口eth1:

sudo ifconfig eth1:1 192.168.1.x/24 up
Run Code Online (Sandbox Code Playgroud)

此时,仅在B上,我添加延迟如下:

sudo tc qdisc add dev eth1:1 root netem delay 50ms 10ms 25%
Run Code Online (Sandbox Code Playgroud)

问题是物理网卡eth1也会出现这种延迟.我的意思是,如果我平eth1上的地址(192.168.0 0.1坪192.168.0,因为如果他们前往的eth1的包被延迟0.2):1.相反,我希望延迟只有eth1:1.

发生了什么?我怎么解决这个问题?

此外,我读到这样,网络损伤只影响出口流量.如何为出口和入口流量引入延迟?

network-monitoring delay network-interface ubuntu-14.04

9
推荐指数
0
解决办法
539
查看次数

Android NetworkInterface.NetworkInterface名称的含义是什么?

我想获得当前设备的可用网络,所以我首先得到网络接口列表:

NetworkInterface.getNetworkInterfaces();
Run Code Online (Sandbox Code Playgroud)

然后,迭代每一个:

NetworkInterface intf = en.nextElement();
String name = intf.getName();
Run Code Online (Sandbox Code Playgroud)

这是问题所在.'name'的返回值名称为:rmnet_data1,dymmy0,wlan0,rmnet_usb0,intf,lo,p2p0,sit0.(在我的设备上)我想知道它们的含义是什么.

android network-interface

9
推荐指数
1
解决办法
2万
查看次数

移动数据打开时通过wifi(无互联网)发送数据

我正在开发和通过wifi(由设备生成)连接到硬件设备并通过套接字连接向其发送数据的应用程序.问题是,当移动数据(3G/4G)被激活时,android会尝试通过它发送数据而不是通过设备生成的wifi发送数据,因为因为wifi没有互联网连接.我正在考虑使用ConnectivityManager#setNetworkPreference(),但它在api 21中已被弃用.

如何设置它使用设备生成的wifi而不是移动数据接口发送数据?

sockets android android-networking android-wifi network-interface

9
推荐指数
1
解决办法
5479
查看次数

如何在从Node.js发出网络请求时指定网络接口?

http.request或者net.connect,是否有一个选项,我可以指定一个网络接口来启动连接?

编辑:操作系统级别的AFAIK我可以指定地址级别,或负载平衡到路由表.但是在我的软件中选择界面的方式不止于此,我想知道我是否可以在代码中做到这一点.

tcp http node.js network-interface

8
推荐指数
3
解决办法
6977
查看次数

发送带有syn标志设置的原始tcp数据包只是通过lo接口,而不是我想要的eth0

我想发送一个syn数据包到我的httpd服务器并获得响应的syn-ack数据包.但是当我使用Wireshark监视时,数据包正在由我的本地接口发送,lo而不是eth0.

我已经尝试设置一些不同的值,setsockopt你可以在下面的代码中看到,但似乎没有工作,它总是使用lo接口,而不是eth0.我不知道tcp数据包是否有什么问题导致它通过本地接口,或者是否是其他东西.

#include <cstdlib>
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>
#include <linux/if_packet.h>
#include <linux/if_ether.h>

#define PCKT_LEN 8192

unsigned short csum(unsigned short *buf, int len) {
    unsigned long sum;
    for(sum=0; len>0; len--)
        sum += *buf++;
    sum = (sum >> 16) + (sum &0xffff);
    sum += (sum >> 16);
    return (unsigned short)(~sum);
}

int main(int argc, char** argv) {

    char *buffer = new char[PCKT_LEN]();

    class iphdr …
Run Code Online (Sandbox Code Playgroud)

c++ raw-sockets network-interface

8
推荐指数
1
解决办法
2648
查看次数

如何识别孤立的veth接口以及如何删除它们?

当我启动任何容器时docker run,我们得到一个新的veth接口.删除容器后,应删除与容器链接的veth接口.但是,有时它会失败(然后容器启动出错):

root@hostname /home # ifconfig | grep veth | wc -l
53
root@hostname /home # docker run -d -P  axibase/atsd -name axibase-atsd-
28381035d1ae2800dea51474c4dee9525f56c2347b1583f56131d8a23451a84e
Error response from daemon: Cannot start container 28381035d1ae2800dea51474c4dee9525f56c2347b1583f56131d8a23451a84e: iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 33359 -j DNAT --to-destination 172.17.2.136:8883 ! -i docker0: iptables: No chain/target/match by that name.
 (exit status 1)
root@hostname /home # ifconfig | grep veth | wc -l
55
root@hostname /home # …
Run Code Online (Sandbox Code Playgroud)

linux network-interface docker

8
推荐指数
2
解决办法
1万
查看次数

如何在Windows 7下强制在Python中传出连接的特定网络接口?

我在Windows 7环境中有两个网络适配器,它们都连接到Internet:

  1. 以太网适配器(本地地址10.9.187.251,外部地址32.181.63.52)
  2. 无线LAN适配器(本地地址192.168.1.178,外部地址5.7.68.81)

默认情况下使用以太网适配器.

我想通过Python脚本中的无线局域网与外部外部地址5.7.68.81建立连接.

我这样做:

import pycurl, StringIO, re
c = pycurl.Curl()
c.setopt(pycurl.URL, 'http://myproxylists.com/my-http-headers')
c.setopt(pycurl.INTERFACE, "192.168.1.178")
b = StringIO.StringIO()
c.setopt(pycurl.WRITEFUNCTION, b.write)
c.setopt(pycurl.SSL_VERIFYPEER, False)
c.setopt(pycurl.SSL_VERIFYHOST, False)
c.perform()
rsp = b.getvalue()
mtch = re.search(r'REMOTE_ADDR == (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})', rsp)
print mtch.group(1)
Run Code Online (Sandbox Code Playgroud)

我得到打印输出:

32.181.63.52
Run Code Online (Sandbox Code Playgroud)

所以使用了默认适配器.似乎c.setopt(pycurl.INTERFACE, "192.168.1.178")不起作用或我使用错误的方式.

此外,我试过所有的回答这个问题,urllib2socket.bind(('192.168.1.178', 0)-相同的结果.

如何在Windows 7中使用Python 2.7为传出连接指定网络接口?

windows pycurl network-interface

7
推荐指数
0
解决办法
2093
查看次数

如何将 USB 无线接口连接到 Mac OS X 上的 Docker 容器?

我有一个 Linux Docker 容器,它需要一个无线接口才能工作。在 Linux 上(在 Linux 主机上运行它)我没有问题。

带参数运行泊坞窗容器--privileged--net=host我可以访问该主机的无线接口,并没有任何问题,我可以管理它们。问题是当我在 Mac OS X 主机上运行相同的 Linux Docker 容器时。我看不到 Docker 容器内的无线接口。

这是 Mac OS X v10.12 (Sierra) 主机上 ifconfig 的输出:

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
    inet 127.0.0.1 netmask 0xff000000
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
    nd6 options=201<PERFORMNUD,DAD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
    ether 00:0c:29:fe:78:07
    inet6 fe80::8ff:62ac:e141:5aa9%en0 prefixlen 64 secured scopeid 0x4
    inet 192.168.0.153 netmask 0xffffff00 broadcast 192.168.0.255 …
Run Code Online (Sandbox Code Playgroud)

linux macos containers network-interface docker

7
推荐指数
0
解决办法
973
查看次数

Mac OS X - 将服务器套接字端口绑定到所有接口并防止其他绑定具有相同端口

在 OS X 上,当在所有接口的特定端口上创建服务器套接字时,新的服务器套接字可以绑定到localhost相同的端口并接受连接。我希望绑定会localhost失败,就像在 Linux 中尝试相同时一样(我专门在 Ubuntu 上尝试过)。

OS X 上的行为对我来说很奇怪,因为客户端连接localhost在侦听所有接口时工作,但新服务器可以绑定localhost到同一端口并接受新连接,而不是第一个侦听器。

套接字如何侦听所有接口并防止其他套接字绑定到localhostOS X 上的相同端口?

以下测试在 Mac 上通过,在 Ubuntu 上失败,但在两者上都应该失败。

import org.junit.Assert;
import org.junit.Test;

import java.io.IOException;
import java.net.Inet4Address;
import java.net.ServerSocket;

public class MinimalTest {
    @Test
    public void listenOnAllInterfacesAndLocalhost() throws IOException {
        final int port = 12340;
        try (ServerSocket allInterfaces = new ServerSocket(port);
             ServerSocket onlyLocalhost = new ServerSocket(port, 100, Inet4Address.getByName("localhost"));) {
            Assert.assertEquals(allInterfaces.getLocalPort(), port);
            Assert.assertEquals(onlyLocalhost.getLocalPort(), port);

            Assert.assertTrue(allInterfaces.isBound());
            Assert.assertTrue(onlyLocalhost.isBound());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过的:

  • 听上明确了所有接口 …

java sockets macos network-programming network-interface

7
推荐指数
0
解决办法
252
查看次数