0
import requests, json, pprint
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

pagesize = 1000

api_url_base = "https://test/sepm/api/v1/"
authentication_url = "https://test/sepm/api/v1/identity/authenticate"

json_format = True


payload = {
 "username" : "test",
 "password" : "test",
 "domain" : ""}

headers = {"Content-Type":"application/json"}

r = requests.post(authentication_url, verify=False, headers=headers, 
data=json.dumps(payload))
api_token = (r.json()["token"])

headers = {'Content-Type': 'application/json', 'Authorization': 'Bearer 
{0}'.format(api_token)}


def get_info(url,params):
 api_url = url
 params = params
 response = requests.get(api_url, headers=headers,verify=False, 
params=params)
 if response.status_code == 200:
 return json.loads(response.content.decode('utf-8'))
 else:
 return response.status_code

def aggregate(endpoint_info,numberOfElements):
  itr =0
 while itr <= (numberOfElements-1):
 computerName=endpoints_info['content'][itr]['computerName']
 ipAddresses=endpoints_info['content'][itr]['ipAddresses'][0]
 logonUserName=endpoints_info['content'][itr]['logonUserName']
 lastUpdateTime=endpoints_info['content'][itr]['creationTime']
 agentVersion = endpoints_info['content'][itr]['agentVersion']
 print(computerName, ipAddresses, logonUserName, lastUpdateTime, a 
gentVersion)
 itr = itr+1




groups_url = '{0}groups'.format(api_url_base)
fingerprint_url = '{0}policy-objects/fingerprints'.format(api_url_base)
endpoints_url = '{0}computers?'.format(api_url_base)

total_pages = get_info(endpoints_url,{'pageSize':pagesize})['totalPages']


itr = 1
while itr <= total_pages:
 params = {'pageSize':pagesize, 'pageIndex':itr}
 endpoints_info = get_info(endpoints_url,params)
 numberOfElements = endpoints_info['numberOfElements']
 itr = itr +1
 if endpoints_info is not 200:

 aggregate(endpoints_info,numberOfElements)

 else:
 print('[!] Request Failed, {0}')

This is the code that uses the Symantec rest API. When you run this You can get the result of the list format as shown below.

commnad line output P09PC 123.63.40.37 test-9 1520236609428 14.0.3897.1101 P10PC 123.63.40.31 test-10 1520230270130 14.0.3775.1002 P11PC 123.63.40.27 test-11 1520229680645 14.0.3775.1002 P12PC 123.63.40.26 test-12 1520229515250 14.0.3775.1002

I modified this source and I want to save the results to a file. Unfortunately, the effort failed for several days. Tell me how to save it as a file

1 Answers1

0

Do you mean instead of printing on terminal you want to write it on a file?

The process is simple, just open a file in desired mode (append mode or write mode depending on your use case) and simply write it there.

Consider reading this tutorial for a grasp over the concept.

After initializing the file object (as described in the tutorial) you just need to write in the file instead of print statements. The code will look something like this

file = open('output.txt', 'w')
file.write(computerName +' '+ ipAddresses +' '+ logonUserName +' '+ lastUpdateTime +' '+ agentVersion)
file.close()
penguin2048
  • 1,303
  • 13
  • 25