Palo Alto XML API Получение журнала с фильтромC#

Место общения программистов C#
Ответить
Anonymous
 Palo Alto XML API Получение журнала с фильтром

Сообщение Anonymous »

Я пытаюсь получить журналы трафика с брандмауэра Пало-Альто через XML API. Я могу получать журналы, но когда я ставлю фильтр, он не работает. Я создаю синтаксис запроса, как в фильтре журнала графического интерфейса брандмауэра. Например ( addr.src в '10.2.0.1' ) и ( addr.dst в '10.7.5.2' ) и ( port.dst eq '443' ).
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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»