Palo Alto XML API Log Retvieve сначала создает идентификатор задания, затем вы вызываете метод с идентификатором задания, который возвращает журналы. Мой код ниже. Любой фильтр не работает.
**
string GetJobIdForLog(int fwId, string srcIp, string destIp, int? dPort, int LastNMinutes)
{
Код: Выделить всё
var device= DBMethods.GetCihazById(fwId);
DateTime dt = DateTime.Now.AddMinutes(lastNMinutes*(-1));
// and ( addr.src in '10.255.0.115' ) and ( addr.dst in '10.217.5.22' ) and ( port.dst eq '10050' )
string date = dt.Year + "/" + dt.Month + "/" + dt.Day + " " + dt.Hour + ":"+dt.Minute+":"+dt.Second;
string query = "(receive_time leq '" + date + "')";
if (!string.IsNullOrEmpty(srcIp))
{
query += " and ( addr.src in '"+srcIp+"' )";
}
if (!string.IsNullOrEmpty(destIp))
{
query += " and ( addr.dst in '" + destIp + "' )";
}
if (dPort.HasValue)
{
query += " and ( port.dst eq '" + dPort.Value + "' )";
}
string requestURL = "https://" + device.IP + "/api/?"
+ "type=log&log-type=traffic&nlogs=1000&query"+query+"=&key=" + device.Apikey;
WebRequest request = WebRequest.Create(requestURL);
request.Proxy = null;
request.Credentials = CredentialCache.DefaultCredentials;
ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(ValidateServerCertificate);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(responseFromServer);
XmlNodeList xmlJob = xmlDoc.SelectNodes("/response/result/job");
string jobId = xmlJob.Item(0).InnerText;
return jobId;
Подробнее здесь: https://stackoverflow.com/questions/791 ... ith-filter
Мобильная версия