从批处理脚本中分配IP
使用以下代码,我会遇到一个错误"无效的接口LAN:指定".但是,该代码在Win7中起作用,但是在Windows XP中不起作用.我怀疑这与"!Adaptername!"有关. XP中发生冲突. 我使用此脚本来获取NIC名称,以防将来更改一些如何和希望保留此方案的方式.有什么想法我如何在XP环境中继续使用此类脚本? :: Set primary and alternate DNS for IPv4 @ECHO OFF for /f "tokens=* delims=0" %%a in ("%SITEID%") DO set DROPZERO=%%a SETLOCAL EnableDelayedExpansion SET adapterName= FOR /F "tokens=* delims=:" %%a IN ('IPCONFIG ^| FIND /I "ETHERNET ADAPTER"') DO SET adapterName=%%a REM Removes
4 2023-12-09
编程技术问答社区
以编程方式禁用/启用网络接口
我试图提出一个解决方案来启用/禁用网络卡 - 我已经进行了大量研究,在XP和Vista环境中似乎没有什么可行的解决方案.我在说的是,如果您进入控制面板"网络连接",请右键单击一个并选择启用或禁用.理想情况下,我想使用库,但是如果更糟的话,我想我可以呼唤命令行应用程序,但这绝对是最坏的情况.这是我到目前为止尝试过的方法,为什么/为什么失败: 上一篇文章: 如何通过编程启用/disable网络接口进行编程启用/禁用网络接口? (Windows XP) 列出了几种方法 - 第一个使用NetSh,似乎与使用iPhelper function setifentry()相同.问题在于它将接口设置为管理启用或禁用,而不是启用/禁用的正常接口,因此它实际上不会关闭NIC. 提出的另一个解决方案是使用WMI,尤其是Win32_networkAdapter类,该类具有启用和禁用的方法: 在en-us/library/aa394216(vs.85).aspx 很好吧?在Vist
4 2023-12-09
编程技术问答社区
区分VMware网络适配器和物理网络适配器 - 或- 检测虚拟网络适配器
我必须使用任何Windows API区分实际地址和VM地址. 我正在使用GetAdaptersAddresses API来填充本地计算机的IP地址列表.除了与VMware网络适配器和其他地址相关的地址(自动配置和隧道适配器地址)之外,我只需要提取"真实"地址.我无法找到任何API或任何标志来区分它.有什么办法可以做到吗? ps :IP_ADAPTER_ADDRESSES IP_ADAPTER_ADDRESSES IP_ADAPTER_ADDRESSES GetAdaptersAddresses返回的结构中的标志无助于我区分VMware地址和真实地址. 解决方案 MAC地址的开始(前3个段)显示了接口是否虚拟: "00:05:69"; //vmware1 "00:0C:29"; //vmware2 "00:50:56"; //vmware3 "00:1C:42"; //parallels1 "00:03:FF"; //microsoft virtual pc "00:0
8 2023-12-06
编程技术问答社区
获取当前网卡设置
因此,将一个我目前无法弄清的代码部分的长篇小说缩短,旨在报告给定NIC的当前IP设置,因此我希望它本质上吐出IP,子网和默认值目前设置的网关.我有一个解决方案,但是当NIC设置为DHCP时,它似乎只能发挥不错的作用,这对我的应用不利. 这是我当前的代码: Public Sub NetGet() MainForm.NetLabelIP.Text = "IPv4 Address: " MainForm.NetLabelIP.Text = "subnet Mask: " MainForm.NetLabelIP.Text = "Default Gateway: " MainForm.NetLabelCN.Text = "Computer Name: " + System.Net.Dns.GetHostName() For Each ip In System.Net.Dns.GetHostEntry(System.Net.Dns.GetHos
2 2023-11-14
编程技术问答社区
如何在Python中从NIC(网络接口控制器)获得IP地址?
当Unix上的Python脚本中发生错误时,发送了一封电子邮件. 我被要求将{测试环境}添加到电子邮件的主题行中,如果IP地址为192.168.100.37,即测试服务器.这样,我们可以拥有一个脚本的一个版本,也可以判断电子邮件是否来自Testing Server上的数据. 但是,当我Google时,我一直在找到此代码: import socket socket.gethostbyname(socket.gethostname()) 但是,这给了我127.0.1.1的IP地址.当我使用ifconfig时,我会得到这个 eth0 Link encap:Ethernet HWaddr 00:1c:c4:2c:c8:3e inet addr:192.168.100.37 Bcast:192.168.100.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST
10 2023-11-08
编程技术问答社区
使用python控制台命令确定活动网卡地址
我试图找到一个活跃的NIC,一个活跃的NIC是命令将为我返回的命令. 在我的命令中: # cat /sys/class/net/eth0/operstate 我被返回了一个值 在另一个命令中,我键入: # cat /sys/class/net/eth1/operstate 我得到了下降的价值 总的来说,我有4个ETH.我基本上必须使用该命令来确定向上或向下 /sys/class/net/eth[0|1|2|3]/operstate = up | down 我希望能够编写一个程序,在其中我将能够返回ETH [0 | 1 | 2 | 3]值. 到目前为止,这就是我所拥有的: mylist= [0,1,2,3] for x in mylist: with open('/sys/class/net/'x'/operstate') as f: mac_eth0= f.read().rstrip()
28 2023-07-11
编程技术问答社区
Python,如何使用多个NIC获取所有外部ip地址
使用Python,使用多个NIC的机器的所有外部IP地址的最有效方法是什么?我了解外部服务器已被静止(我有可用),但无法找到一种方法来找到一种很好的方法来指定用于连接的NIC ).关于最好的方法有什么建议吗? 解决方案 您应该使用 netifaces .它被设计为在Mac OS X,Linux和Windows上进行跨平台. >>> import netifaces as ni >>> ni.interfaces() ['lo', 'eth0', 'eth1', 'vboxnet0', 'dummy1'] >>> ni.ifaddresses('eth0') {17: [{'broadcast': 'ff:ff:ff:ff:ff:ff', 'addr': '00:02:55:7b:b2:f6'}], 2: [{'broadcast': '24.19.161.7', 'netmask': '255.255.255.248', 'addr': '24.19.161.6'}], 1
22 2023-06-23
编程技术问答社区
从C++代码中检查互联网连接情况
在使用大型代码库进行遗留应用程序时,每当我看到一块代码检查Internet连接是否处于活动状态时,我主要看到了诸如: 之类的功能的用途 InternetCheckConnection(L"http://www.google.com",FLAG_ICC_FORCE_CONNECTION,0) //or BOOL bConnected = IsNetworkAlive(&dwSens) //or InternetGetConnectedState(&dwReturnedFlag, 0) //or some other functions 但是,有一种非常非常简单的方法可以在您不需要包含写代码的其他标头文件的地方进行此操作,也就是说: if (system("ping www.google.com")) 我的问题是,当我需要查看连接是否可用时,从代码中使用ping有什么缺点? 假设ping在我的软件要运行的机器上不会被禁用. 解决方案 system("ping
18 2023-06-06
编程技术问答社区
.NET SqlConnection NIC的使用
拥有带有多个NIC的计算机,我需要以某种方式指定一个用于连接到SQL Server的计算机. 解决方案 以下来自@pzycoman,sqlConnection(和SQL OLEDB/SQL Server ODBC)没有明确的连接字符串语义来表达绑定的NIC,而不是指定目标服务器主机地址(依次触发了路由指标讨论).将服务或应用程序分配到不同的子网上可以工作 - 但同样可以生成利用不对称的类似于您今天所看到的. 如果您的适配器支持它,则另一个潜在的选择将是NIC组合.组合软件将多个NIC粘合到单个逻辑通道中,以增加吞吐量,而Netops的复杂性较小.这发生在OSI的较低级别,因此对您的应用程序和服务是透明的. 曾经有多种原因(主要是NLB问题和驾驶员质量)皱着眉头,但是在过去的几年中,这些原因很大程度上得到了缓解. 一如既往地工程心态将有所帮助 - 测试一切. 其他解决方案 如果NIC具有不同的子网,则Windows应自动通过右NIC路由请求(从命令行中运行
68 2023-05-24
编程技术问答社区
Connectx-5 DPDK性能降解时,启用巨型,散射和多SEG
我正在使用ConnectX-5 nic. 我有一个DPDK的应用程序,我想支持jumbo packets. 为此,我添加了RX卸载功能:DEV_RX_OFFLOAD_JUMBO_FRAME,DEV_RX_OFFLOAD_SCATTER 和TX卸载功能:DEV_TX_OFFLOAD_MULTI_SEGS 我也使max_rx_pkt_len更高,因此它将接受巨型数据包(9k). 我注意到添加这些卸载功能 +增加max_rx_pkt_len危害性能. 例如,没有那些卸载标志,我可以重定向80Gbps大小512的数据包,而无需任何掉落. 使用这些标志将~55Gbps降低而不会损失. 我正在使用DPDK 19.11.6. 目前在此测试中,我不发送巨型数据包.我只想了解它如何影响平均数据包大小. 这是期望的吗?使用这些卸载标志应该降低性能? 谢谢 - 编辑 - 端口配置: const struct rte_eth_conf port_conf = {
40 2023-05-02
编程技术问答社区
在ethtool命令的输出中,"[fixed]"字符串的含义是什么?
我运行EthTool,使用" EthTool -K"命令查询NIC的卸载功能,并且输出是如下: ethtool -k eth0 scatter-gather: on tx-scatter-gather: on tx-scatter-gather-fraglist: off **[fixed]** 我想知道" [固定]"的含义是什么. 解决方案 这些是无法更改的参数,它们是"固定"的. 这是一个示例.让我们以Ethtool的输出来进行: large-receive-offload: off [fixed] rx-vlan-offload: on tx-vlan-offload: on 如果我想更改rx-vlan-offload,我会做: $ sudo ethtool -K eth0 rxvlan off Actual changes: tcp-segmentation-offload: on tx-tcp-segmentation: on
30 2023-04-21
编程技术问答社区
NIC中的描述符概念
我试图了解网络驱动程序代码中使用的RX和TX描述符的概念. 是软件(RAM)或硬件(NIC卡)中的描述符. 他们如何填补. 编辑:因此,在Realtek卡驱动程序代码中.我有一个以下结构定义. struct Desc { uint32_t opts1; uint32_t opts2; uint64_t addr; }; txd->addr = cpu_to_le64(mapping); txd->opts2 = cpu_to_le32(opts2); txd->opts1 = cpu_to_le32(opts1 & ~DescOwn); 那么opts1 and opts2是否有特定于DescOwn卡的位?它们会在数据表中的制造商定义吗? 解决方案 快速答案: 它们是遵循NIC硬件定义的软件结构,因此两者都可以理解并可以相互交谈. 根据供应商定义的合同,他们可以填补任何一种方式.可能的情况可能包括但不
84 2023-04-12
编程技术问答社区
如何在linux中赋予以太网中断最高优先级
我列出了所有中断: cat /proc/interruts 它给出了: CPU0 CPU1 CPU2 CPU3 0: 126 0 0 0 IO-APIC-edge timer 1: 941 0 0 0 IO-APIC-edge keyboard ... (etc.) 19: 941 0 0 0 IO-APIC-fasteoi eth0 ... (etc.) 此表中的第一列是否给出了中断的优先级?我只想学习优先级级别,因为我想提高NIC的中断优先级,以提高网络性能.我认为,前两个中断无法更改(我猜是由于Intel X8
38 2023-03-09
编程技术问答社区
以程序方式检查我的机器是否有互联网接入
如何通过编程方式检查我的计算机是否使用Internet访问C/C ++,这只是ping ping ip的问题吗? NIC如何做?我的意思是: 我正在使用Windows 7. 解决方案 如果您在Windows上工作,请尝试此 #include #include #include using namespace std; int main(){ if(InternetCheckConnection(L"http://www.google.com",FLAG_ICC_FORCE_CONNECTION,0)) { cout
38 2023-02-24
编程技术问答社区
如何在构建应用程序时解决dpdk-18.02的 "无有效端口 "问题?
使用dpdk-v18.02构建应用程序并获取错误为"无效端口". 我尝试了dpdk-v19.02,它给出了相同的错误. 这是错误: EAL: Detected 40 lcore(s) EAL: Multi-process socket /var/run/.rte_unix EAL: Probing VFIO support... EAL: PCI device 0000:04:00.0 on NUMA socket 0 EAL: probe driver: 10ee:9038 xnic EAL: Requested device 0000:04:00.0 cannot be used EAL: Error - exiting with code: 1 Cause: Error: no valid ports 端口已经绑定到驱动程序: dpdk/usertools/# python dpdk-devbind.py --bind=igb_uio 04:00
34 2023-02-04
编程技术问答社区
在Azure中用第二个(或多个)网卡访问互联网
我用ubuntu 19.04和4个网址在Azure中有一个VM,每个都有一个附加的公共IP,作为一个例子,这是第二个NIC: 可以看到,它具有公共IP 191.234.186.19. 我的目标是能够使用不同的IP地址从每个NIC访问Internet,但在VM内部,我只能使用第一个网络eth0访问它. 看# route -n我得到这个输出: Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.0.0.1 0.0.0.0 UG 100 0 0 eth0 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.0.0.0
16 2023-01-21
编程技术问答社区
虚拟机网卡上的GCP静态公共IP
我在VM上安装的特定许可软件有问题,软件许可应与VM NIC上的公共IP地址联系起来. 该软件检查了安装应用程序的服务器的IP地址,并针对应用程序制造商的公共许可证服务器验证,如果IP地址不匹配,则软件将停止工作. 该软件公司使用私人IP地址向我的VM颁发临时许可,因为我无法在NIC上使用公共静态IP,但是我必须每月更改该许可软件公司以私人IP签发许可证. 我在几个讨论组上阅读了这些讨论组,这些讨论组不可能将公共IP地址分配给NIC,但是无论如何是否有可以避免此障碍的,并且某些手段使VM验证公共IP地址在NIC上配置了? 我今天的工作方式,每月续签我的私人IP地址许可证的麻烦,与VM NIC一起使用私有IP地址,VM分配了公共静态IP地址.该应用程序有效,但就许可而言,这很痛苦,我受到软件公司的摆布. 任何帮助将不胜感激. 谢谢! 解决方案 在大多数云中,IBM云是一个例外,VM NIC实际上没有绑定到其的公共IP地址,也不可以.公共IP地址绑
16 2022-12-10
编程技术问答社区
当使用DPDK应用程序时,rte_eth_dev_count总是返回0
我的网卡配置如下:- [root@localhost ethtool]# ../../tools/dpdk-devbind.py -s Network devices using DPDK-compatible driver ============================================ 0000:81:00.0 'NetXtreme BCM5722 Gigabit Ethernet PCI Express' drv=igb_uio unused=tg3 Network devices using kernel driver =================================== 0000:02:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection' if=ens513f0 drv=ixgbe unused=igb_uio 0000:02:00.1 '82599ES 10-Gigabit
1500 2022-08-10
编程技术问答社区
DPDK是否需要1个以上的网卡?
我对 DPDK 完全陌生,有一些我自己无法弄清楚的奇怪问题. DPDK 在我的物理设备上是否需要 1 个以上的 NIC?我看到一些例子(l2fwd,l3fwd)需要2个网卡,一个用于接收数据包,另一个用于传输数据包. 由于 DPDK 控制了 NIC,如果我将唯一的 NIC 绑定到 DPDK,我是否仍然可以正常访问 Internet?我的意思是做一些普通的事情,比如用 Firefox 上网. 绑定网卡后,只有DPDK应用可以访问这些网卡,还是有什么普通应用可以访问的方法? 这几天我一直对这些问题感到困惑.请净化我的心灵. 提前致谢:) 解决方案 这取决于应用程序.对于 l2fwd,是的,您需要 1 个以上的 NIC.但是,它们不必是物理的.您可以使用 VmWare 或 VirtualBox 创建虚拟 NIC. 如果将 NIC 绑定到 DPDK,您将无法上网. 我认为没有其他办法. 对于开发,您可以设置一个虚拟机,有 2 个虚拟 NIC 供 DPDK
160 2022-08-10
编程技术问答社区
如何在Python中获得网卡的IP地址?
当 Unix 上的 Python 脚本发生错误时,会发送一封电子邮件. 如果测试服务器的 IP 地址是 192.168.100.37,我被要求将 {Testing Environment} 添加到电子邮件的主题行.这样我们就可以拥有一个脚本版本和一种方法来判断电子邮件是否来自测试服务器上的混乱数据. 但是,当我用谷歌搜索时,我一直在寻找这段代码: import socket socket.gethostbyname(socket.gethostname()) 但是,这给了我 127.0.1.1 的 IP 地址.当我使用 ifconfig 我得到这个 eth0 Link encap:Ethernet HWaddr 00:1c:c4:2c:c8:3e inet addr:192.168.100.37 Bcast:192.168.100.255 Mask:255.255.255.0 UP BROADCAST RUNNI
202 2022-08-01
编程技术问答社区