1. 程式人生 > >Curl庫加wireshark抓取表單並模擬web的post方法

Curl庫加wireshark抓取表單並模擬web的post方法

本文概述:

         本文將簡要介紹wireshark抓包web資料以及模擬post、get方法。

         在當下的各種應用中,在web方面,很多功能會經常使用到post以及getweb方法。

         其中有這樣一種情況,在我們的產品或者專案中,供應商提供了web的應用介面,可以控制,但是我們需要將這樣的應用做到自己的app中,這樣的話,如果獲得web功能對應url、post資料、以及模擬方法成為關鍵。

          本文將簡要介紹這種抓包web資料以及模擬post、get方法。本文出自csdn-固本培元[email protected]

開始:

wireshark抓包

         開啟wireshark後,選擇對應網絡卡,將獲取很多資料,filter填寫http過濾其他資料。當點選你想要模擬的post表單後,post的網路資料就被wireshark捕獲了。當然由於資料很多,需要點選 Info 按鈕 排序,這樣更好找到對應捕獲的post資料。如下圖所示,資料以及相對於的http頭協議資訊。


          在抓取到如上圖資訊後,展開Hypertext Transfer Protocl 以及 Line-based text data.

         如下圖所示。你就可以看到對應的url以及post的真實資料。他們就是我們下文需要模擬傳送的地址以及模擬資料了。


下載編譯curl,編寫模擬函式

           僅僅抓到資料包以及獲取對應的url地址還不足夠,我們還需要得到對應的模擬方法。目前參考方法很多。有Qt的網路庫,有MFC對應的http介面,還有很多對應方法。就筆者而言,認為linux開源組織的curl一套方案,簡單高效,可移植性高。因此選擇了這種方法。如下,是筆者封裝的curl傳送post方法的介面。

           當然了,在這之前,你需要下載curl庫,編譯他,然後在你的工程中載入curl庫以及標頭檔案。都是很簡單的過程,這裡不再闡述。祝你好運。本文出自csdn-固本培元。

#include <string.h>
#include <stdio.h>
#include <curl/curl.h>

int CurlPost(const char* url,const char* usr,const char *password,const char* data)
{
  CURL *curl;
  CURLcode res;

  char auth[200];memset(auth,0,200);

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL,url );
    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
    curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
    curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

    curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookies.txt");

    strcat(auth,usr);
    strcat(auth,":");
    strcat(auth,password);

    curl_easy_setopt(curl, CURLOPT_USERPWD, auth);

    /* Now specify the POST data */
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS,data );

    /* Perform the request, res will get the return code */
    res = curl_easy_perform(curl);
    /* Check for errors */
    if(res != CURLE_OK){
      printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));
    }
    /* always cleanup */
    curl_easy_cleanup(curl);
  }
  return 0;
}


相關推薦

Curlwireshark模擬web的post方法

本文概述:          本文將簡要介紹wireshark抓包web資料以及模擬post、get方法。          在當下的各種應用中,在web方面,很多功能會經常使用到post以及getweb方法。          其中有這樣一種情況,在我們的產品或者專案中,

利用wiresharkTCP的整個過程分析。

tle AR edit In 參考 bsp ack 遇到 紅色 原文地址:https://www.cnblogs.com/NickQ/p/9226579.html 最近,已經很久都沒有更新博客了。看看時間,想想自己做了哪些事情,突然發現自己真的是太貪心,到頭來卻一個都沒搞

wiresharkOMCI報文

pytho pat hex res user 安裝 constant gui class 1.安裝文件: 1.1 BinDecHex.lua 1.2 omci.lua 2.如上兩個文件copy至wireshark安裝目錄,如C:\Program Files (x86)\

wireshark 本機到本機的包

轉載於:https://www.cnblogs.com/luhouxiang/p/3606976.html 在進行通訊開發的過程中,我們往往會把本機既作為客戶端又作為伺服器端來除錯程式碼,使得本機自己和自己通訊。但是wireshark此時是無法抓取到資料包的,需要通過簡單的設定才可以。 具體方法

字符串:截網址裏的信息變成對象

就是 字符 bsp fun 判斷 title 信息 amp .com 字符串的方法 1.str.indexOf("?")返回?這個字符串的位置,也就是第幾位 2.str.slice(num)截取從num開始到結束的字符串, str.slice(num1,num2)截取從nu

PHP使用CURL向Python,Golang傳送檔案上傳檔案[HTTP協議下Api]

PHP傳送方程式碼段: <?php /** * htppCurl表單上傳檔案 * @param $file FILE_ADDR * @param string $url uri * @param string $key key * @return bool|mixed *

使用wireshark同一臺機器上的網路通訊

1.首先,如果不進行特殊的設定,wireshark是無法直接抓取同一臺機器上的網路通訊的資料包的。 2.新增一個路由就可以使用wireshark進行抓包分析了。 3.新增路由的步驟 3.1 管理員執行cmd 3.2使用route新增路由 route add 10.176.10.3 ma

wireshark本地資料包

windows系統中,本地向自身傳送資料包沒有經過真實的網路介面,而是通過環路(loopback interface)介面傳送,所以使用基於只能從真實網路介面中抓資料的winpcap是無法抓取本地資料包,需要使用npcap,npcap是基於winpcap 4.1.3開發的,api相容WinPcap,

(PHP)用cURL網頁資訊替換部分內容

<?php /** * 用cURL抓取網頁資訊並替換部分內容 * User: Ollydebug * Date: 2015/11/11 * Time: 19:13 */ $curlo

WiresharkRTP包,還原語音

最近在做基於SIP的VoIP通訊研究,使用Wireshark軟體可以對網路流量進行抓包。 VoIP使用RTP協議對語音資料進行傳輸,語音載荷都封裝在RTP包裡面。要對傳輸中的語音進行截獲和還原,需要通過Wireshark對RTP包進行分析和解碼。該過程如下: 1.開啟截獲的

通過wireshark視訊流資訊

平常在測試客戶端與服務端互動時,因為一般都是為http與https協議,所以平常都會用Charles工具進行抓包分析,使用下來很方便,確實是一個輕量級的抓包工具。 但是抓取的協議比較固定,想抓取一些其它資訊的時候就無法再用這個工具了。例如說視訊流資訊,以及該視訊的播放指標

php curl 正則表示式 微博使用者資訊練習

兩個月前學習php curl時做的練習,今天週末整理了一下。 程式封裝了四個類,主要使用了curl來抓取微博使用者的個人資訊頁面以及關注的使用者頁面,然後通過分析頁面結構使用正則表示式以及php的字串函式擷取所需的資訊。 Curl類:用於進行資料庫操作;

wireshark不到本地迴路的資料包

        在測試時,要用wireshark抓取本地迴路的測試包,結果發現怎麼都抓不到127.0.0.1的tcp資料包,不管怎麼看,都沒有127.0.0.1的資料包.弄了半上午,發現如果是tcp客戶端向別的IP通訊wireshark都能正常截獲,如果是本機則沒有一點動

python爬蟲使用BeautifulSoup簡單快速資料

如何快速入門抓取html網頁資料開發準備:1:開發工具使用pycharm,下載點選開啟連結2 : python3.6 下載點選開啟連結配置過程百度,不做細緻分析,配置完成後進入開發,pycharm破解選擇License server啟用即可,idea.qmanga.com可用

wiresharkhttps加密報文,解密

首先你要有證書,而且這個證書需要是.pem格式的。 Window的證書管理匯出來的是.pfx檔案。這個格式在官網上說也是可以用的,但是我嘗試了N遍還是沒有成功。 最後只能將.pfx轉換成.pem格式的。 我的wireshark版本是1.4.4,WinPcap版本是4.1.2。

WiresharkTCP報文型別為RST的方法

在Wireshark中有時候需要抓取詳細的TCP連結型別,最近需要抓取一個RST報文型別,後來經過研究發現,如果需要在抓取中過濾,則設定型別為 tcp[13]&4==4 || tcp[13]&4==14 #tcp的flag在偏移13位元組的

【APP高仿系列一】Wireshark資料

前言 很多開發者想在空閒的時候自己寫個APP來提高自己的技術能力,但是又有苦於沒有UI和資料來源,最好的的解決方案是找到一款自己喜歡的APP,然後抓取資料進行高仿和創新,本系列就從抓取資料開始講起。 資料抓取 Wireshark想必大家都知道,不清楚的自行

Ubuntu(VMware)下用wireshark802.11無線資料包 操作詳解

咱們從零開始:準備環境:VMware12.0 + Ubuntu16.04 (越新越好)辛酸之路:筆記本插上無線usb網絡卡,連線到Ubuntu,iwconfig識別不到網絡卡。下個官方驅動吧,這個Ralink很難找,放到Ubuntu編譯失敗。 然而同學卻能直接識別出網絡卡,沒

【jQuery】利用的序列化根據name,做的驗證

在前臺做表單的驗證的方式有很多種,具體思想是你先要把表單的要驗證項裡面的值取出來,然後再指令碼處進行判斷,最後根據判斷結果告警,然後給onsubmit="return XX()"那個函式,返回true與false的布林值。整個過程,把表單的要驗證項取出來是關鍵。在《【Jav

Marvell Yukon88E8057 PCI-E Gigabit Ethernet Controller 網絡卡無法通過wiresharkvlan的問題

sony cw28 使用的網絡卡如下 Marvell Yukon88E8057 PCI-E Gigabit Ethernet Controller  網絡卡無法通過wireshark抓取vlan的問題 參考下文,主要是找到對應網絡卡的資料夾,下圖中,可以看到網絡卡的名稱,按