當前位置:首頁 » 以太坊知識 » 以太坊抓包

以太坊抓包

發布時間: 2021-03-26 12:07:03

① 一台linux的伺服器,eth0的網路參數全部配置好了,為什麼還是ping不通,DNS、網關跟其他機器的一樣

你重啟一下網路服務啊,service network restart

② ethreal怎麼提取網路包中的頁面內容

Ethereal 抓包工具使用攻略
http://www.n2pcn.com/download/ethereal_readme.doc

③ tcpmp為什麼抓不到eth0的tcp包

/usr/sbin/tcpmp -i eth0 -s 1500 -w dhcp.pcap 'udp and port 67 and port 68'
-i 指定抓包網卡
-s 指定抓包長度,默認只抓包頭
-w 將抓包內容保存下來,然後用wireshark之類的軟體看更方便。如果想要在屏幕滾動查看,忽略這個選項
udp and port 67 and port 68:dhcp報文的過濾條件,udp協議,埠67和68

④ 為了抓取網卡eth0上只來自於主機192.168.1.2的http通訊網路包可以使用什麼命令

任何命令都不管用,抓包要使用專門的工具,比如WireShark

⑤ 成都golang好找工作嗎

成都工作好找?沒什麼特長還2000左右的工資?樓上的,你真會誤導群眾也~~~
大實話,成都工作好找,但好工作很難找~~~除非你有一技之長,且比較專精。懂點皮毛工資表想上2000哈。

⑥ 在cygwin下想用c語言調用libpcap實現網路抓包。是不是cygwin下不支持libpcap

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <netdb.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/ip.h>
#include <netinet/in.h>
#include <netinet/if_ether.h>
#include <netpacket/packet.h>
#include <net/ethernet.h>
#include <net/if.h>
#include <arpa/inet.h>
#include <errno.h>

/* 接收緩沖區大小 */
#define RCV_BUF_SIZE 1024 * 5

/* 接收緩沖區 */
static int g_iRecvBufSize = RCV_BUF_SIZE;
static char g_acRecvBuf[RCV_BUF_SIZE] = {0};

/* 物理網卡介面,需要根據具體情況修改 */
static const char *g_szIfName = "eth1";

/* 乙太網幀封裝的協議類型 */
static const int g_iEthProId[] = { ETHERTYPE_PUP,
ETHERTYPE_SPRITE,
ETHERTYPE_IP,
ETHERTYPE_ARP,
ETHERTYPE_REVARP,
ETHERTYPE_AT,
ETHERTYPE_AARP,
ETHERTYPE_VLAN,
ETHERTYPE_IPX,
ETHERTYPE_IPV6,
ETHERTYPE_LOOPBACK
};
static const char g_szProName[][24] = {
"none", "xerox pup", "sprite", "ip", "arp",
"rarp", "apple-protocol", "apple-arp",
"802.1q", "ipx", "ipv6", "loopback"
};
/* 輸出MAC地址 */
static void ethmp_showMac(const int iType, const char acHWAddr[])
{ int i = 0;
if (0 == iType)
{
printf("SMAC=[");
}
else
{
printf("DMAC=[");
}
for(i = 0; i < ETHER_ADDR_LEN - 1; i++)
{
printf("%02x:", *((unsigned char *)&(acHWAddr[i])));
}
printf("%02x] ", *((unsigned char *)&(acHWAddr[i])));
}
/* 物理網卡混雜模式屬性操作 */
static int ethmp_setPromisc(const char *pcIfName, int fd, int iFlags)
{ int iRet = -1;
struct ifreq stIfr;
/* 獲取介面屬性標志位 */
strcpy(stIfr.ifr_name, pcIfName);
iRet = ioctl(fd, SIOCGIFFLAGS, &stIfr);
if (0 > iRet)
{ perror("[Error]Get Interface Flags");
return -1;
}
if (0 == iFlags)
{ /* 取消混雜模式 */
stIfr.ifr_flags &= ~IFF_PROMISC;
}
else
{ /* 設置為混雜模式 */
stIfr.ifr_flags |= IFF_PROMISC;
}
iRet = ioctl(fd, SIOCSIFFLAGS, &stIfr);
if (0 > iRet)
{ perror("[Error]Set Interface Flags");
return -1;
}
return 0;
}
/* 獲取L2幀封裝的協議類型 */
static char *ethmp_getProName(const int iProNum)
{ int iIndex = 0;
for(iIndex = 0; iIndex < sizeof(g_iEthProId) / sizeof(g_iEthProId[0]); iIndex++)
{ if (iProNum == g_iEthProId[iIndex])
{
break;
}
}
return (char *)(g_szProName[iIndex + 1]);
}
/* Init L2 Socket */
static int ethmp_initSocket()
{ int iRet = -1;
int fd = -1;
struct ifreq stIf;
struct sockaddr_ll stLocal = {0};
/* 創建SOCKET */
fd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
if (0 > fd)
{ perror("[Error]Initinate L2 raw socket");
return -1;
}
/* 網卡混雜模式設置 */
ethmp_setPromisc(g_szIfName, fd, 1);
/* 設置SOCKET選項 */
iRet = setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &g_iRecvBufSize,sizeof(int));
if (0 > iRet)
{ perror("[Error]Set socket option");
close(fd);
return -1;
}
/* 獲取物理網卡介面索引 */
strcpy(stIf.ifr_name, g_szIfName);
iRet = ioctl(fd, SIOCGIFINDEX, &stIf);
if (0 > iRet)
{ perror("[Error]Ioctl operation");
close(fd);
return -1;
}
/* 綁定物理網卡 */
stLocal.sll_family = PF_PACKET;
stLocal.sll_ifindex = stIf.ifr_ifindex;
stLocal.sll_protocol = htons(ETH_P_ALL);
iRet = bind(fd, (struct sockaddr *)&stLocal, sizeof(stLocal));
if (0 > iRet)
{ perror("[Error]Bind the interface");
close(fd);
return -1;
}
return fd;
}
/* 解析Ethernet幀首部 */
static int ethmp_parseEthHead(const struct ether_header *pstEthHead)
{ unsigned short usEthPktType;
if (NULL == pstEthHead)
{ return -1;}
/* 協議類型、源MAC、目的MAC */
usEthPktType = ntohs(pstEthHead->ether_type);
printf(">>>\nEth-Pkt-Type:0x%04x(%s) ", usEthPktType, ethmp_getProName(usEthPktType));
ethmp_showMac(0, pstEthHead->ether_shost);
ethmp_showMac(1, pstEthHead->ether_dhost);
return 0;
}
/* 解析IP數據包頭 */
static int ethmp_parseIpHead(const struct ip *pstIpHead)
{ struct protoent *pstIpProto = NULL;
if (NULL == pstIpHead)
{ return -1;}
/* 協議類型、源IP地址、目的IP地址 */
pstIpProto = getprotobynumber(pstIpHead->ip_p);
if(NULL != pstIpProto)
{ printf("\nIP-Pkt-Type:%d(%s) ", pstIpHead->ip_p, pstIpProto->p_name); }
else
{ printf("\nIP-Pkt-Type:%d(%s) ", pstIpHead->ip_p, "None");}
printf("SAddr=[%s] ", inet_ntoa(pstIpHead->ip_src));
printf("DAddr=[%s]\n", inet_ntoa(pstIpHead->ip_dst));
return 0;
}
/* 數據幀解析函數 */
static int ethmp_parseFrame(const char *pcFrameData)
{ int iRet = -1;
struct ether_header *pstEthHead = NULL;
struct ip *pstIpHead = NULL;
/* Ethnet幀頭解析 */
pstEthHead = (struct ether_header*)g_acRecvBuf;
iRet = ethmp_parseEthHead(pstEthHead);
if (0 > iRet)
{ return iRet;}
/* IP數據包類型 */
pstIpHead = (struct ip *)(pstEthHead + 1);
iRet = ethmp_parseIpHead(pstIpHead);
return iRet;
}
/* 捕獲網卡數據幀 */
static void ethmp_startCapture(const int fd)
{ int iRet = -1;
socklen_t stFromLen = 0;
/* 循環監聽 */
while(1)
{ /* 清空接收緩沖區 */
memset(g_acRecvBuf, 0, RCV_BUF_SIZE);
/* 接收數據幀 */
iRet = recvfrom(fd, g_acRecvBuf, g_iRecvBufSize, 0, NULL, &stFromLen);
if (0 > iRet)
{ continue;}
/* 解析數據幀 */
ethmp_parseFrame(g_acRecvBuf);
}
}
/* Main */
int main(int argc, char *argv[])
{ int iRet = -1;
int fd = -1;
/* 初始化SOCKET */
fd = ethmp_initSocket();
if(0 > fd) {
return -1;
}
/* 捕獲數據包 */
ethmp_startCapture(fd);
/* 關閉SOCKET */
close(fd);
return 0;
}
編譯命令
gcc -o a a.c
./a
實現效果圖

...

>>>Eth-Pkt-Type:0x0800(ip) SMAC=[00:1a:92:ef:b6:dd] DMAC=[00:24:7e:dc:99:18] IP-Pkt-Type:6(tcp) SAddr=[192.168.0.111] DAddr=[192.168.0.100]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:24:7e:dc:99:18] DMAC=[00:1a:92:ef:b6:dd] IP-Pkt-Type:6(tcp) SAddr=[192.168.0.100] DAddr=[192.168.0.111]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:24:7e:dc:99:18] DMAC=[00:1a:92:ef:b6:dd] IP-Pkt-Type:1(icmp) SAddr=[192.168.0.100] DAddr=[192.168.0.111]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:1a:92:ef:b6:dd] DMAC=[00:24:7e:dc:99:18] IP-Pkt-Type:1(icmp) SAddr=[192.168.0.111] DAddr=[192.168.0.100]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:1a:92:ef:b6:dd] DMAC=[00:24:7e:dc:99:18] IP-Pkt-Type:6(tcp) SAddr=[192.168.0.111] DAddr=[192.168.0.100]

...

⑦ 在虛擬機上eth0 ping 主機,為什麼在其他出介面(eth1)tcpmp還能看到報文

都是屬於同一網路類型,是可以抓到的。
如果eth0是橋接,eth2是nat或僅主機類型,那麼eth0上的流量,eth2上就抓不到了。

⑧ golang適合做web開發嗎

適合。框架足夠成熟了 A Survey of 5 Go Web Frameworks
小型項目你甚至不用框架,用net/http http - The Go Programming Language
常用庫也成熟了 Top - Go Search
golang的web後端即使不concurrent也比php,ruby,python快很多很多
golang里用concurrent真的非常方便,非常非常快,超大web項目golang scale成本低
如果你想,golang的部署可以比php更方便,使用go get和http.ServeAndListen()可以不用nginx和apache
對於文件改動重新編譯其實並不是大問題,看pilu/fresh · GitHub,其實你自己寫shell腳本(也可以直接用go寫,因為它本身就是系統語言)監控文件系統改動然後自動重新build,即使是C/C++的項目這也不是大問題,人們不用C/C++寫web是因為它們不是寫web app的最佳選擇
golang寫的代碼編譯通過後,要比scripting language魯棒,因為go compiler強制一些最佳實踐

⑨ 我用ethereal軟體抓包,ping 10.22.99.1 -l 1 -t,發現eth網報文的長度是43位元組,按道理乙太網位元組最小是6

乙太網64位元組最小,這個64位元組是包括乙太網頭的(smac/damc/ tpid),你再check一下ethereal

⑩ 我在用BT3破解無線路由密碼時,選擇網卡型號里滅有wifi0,只有eth0和eth1,是什麼原因 ,破解了半天也沒破

抓包用奶瓶!就幾十兆。破解用ewsa,超快!

不會hi我。

熱點內容
以太坊部署多個私鏈 發布:2025-01-10 05:45:39 瀏覽:976
買usdt的辦法 發布:2025-01-10 05:39:04 瀏覽:362
如何幹掉挖礦軟體 發布:2025-01-10 05:35:12 瀏覽:985
區塊鏈社群運營上海 發布:2025-01-10 05:10:50 瀏覽:373
北京市礦機醫院 發布:2025-01-10 05:09:17 瀏覽:95
算力蜂app官方 發布:2025-01-10 05:06:57 瀏覽:891
以太經典和以太坊的區別 發布:2025-01-10 04:28:08 瀏覽:409
比特幣現金挖礦計算器 發布:2025-01-10 04:25:26 瀏覽:435
以太坊錢包開發web 發布:2025-01-10 04:19:29 瀏覽:381
門羅幣可以用手機挖礦 發布:2025-01-10 03:56:17 瀏覽:908