簡體   English   中英

檢測傳入的 PHP 帖子,保存文件

[英]Detect incoming PHP post, save file

目前有一個服務器設置為將 zlib 文件發布到另一台服務器:(這是 C# 代碼)

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://server-ip-here/postlistener?filename=filename.zlib");
req.UseNagleAlgorithm = true;
req.AllowWriteStreamBuffering = true;
req.Method = "POST";
req.Accept = "application/xml";
req.ServicePoint.Expect100Continue = false;
System.Net.ServicePointManager.CheckCertificateRevocationList = false;
req.Proxy = new WebProxy();

filename = "filename.dat";
byte[] postData = File.ReadAllBytes(filename);
Stream stream = req.GetRequestStream();
stream.Write(postData, 0, postData.Length);
stream.Flush();
stream.Close();

req.BeginGetResponse(new AsyncCallback(responseHandler), this);

需要在不同的服務器上編寫一些 php 以便當這個特定的 IP 向我發布內容時(也就是當服務器 192. 某些東西或其他發布到我的服務器 IP 時)我需要能夠

  • a) 檢測是否正在進行 POST
  • b) 檢查是否通過列入白名單的 IP
  • c) 下載 POST 數據(應該是二進制的)並將其保存為帖子中的任何名稱(需要接受 URL 中的文件名:.www.blah.com/upload?filename=somefile_1234_12389126496129684790.zlib)

然而,作為 PHP 的新手,這是我迄今為止的研究告訴我的:

  • a) 使用此代碼查看請求是否為帖子

    if '($_SERVER['REQUEST_METHOD'] === 'POST') { // … }

  • b) 使用: $_SERVER['HTTP_REFERER']

  • c) 沒有真正的想法。

也不完全確定如何將這些部分串在一起。 我有什么想法可以監聽從該 IP 發送的 POST,然后下載正在發布的文件?

也真的不知道如何設置我的 php 頁面才能做到:

/postlistener?filename=filename.zlib

我相信 postlistener 部分是我的頁面,不知何故該頁面也應該獲得一個文件? TH=他是我的理解,已經為公司的其他人接手了這個項目,當然沒有文件可以配合。 任何幫助都會有很大幫助,謝謝。

這將偵聽任何 POST 數據,然后將 post 變量名稱放入一個數組中。

    <?

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
     if($_SERVER['REMOTE_ADDR'] == '*IPADDRESS*') {
          $posts = array();
          foreach ($_POST as $key => $value){
               echo "{$key} = {$value}\r\n";
               array_push($posts,$key);
          }
      }
}

print_r($posts);
?>

之后,您可以遍歷$posts數組並下載所有內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM