import requests,json,datetime

URL = "https://<FMG IP>/jsonrpc"
ADOM_NAME = "root"

admin_user ="admin"
admin_password = ""

device_name = <Device Name>
switch_name = <FSW Name>

def fmg_login():
    login = {
      "method": "exec",
      "params": [
        {
          "data": {
            "user": admin_user,
            "passwd": admin_password
          },
          "url":"/sys/login/user"
        }
      ],
      "id": 4
    }
    response = requests.post(URL,json=login,verify=False)
    result = response.json()
    return result["session"]    
    
def getflinkintf(fmg_session):
    req = {
      "id": 6,
      "jsonrpc": "2.0",
      "method": "get",
       "params": [
            {
                "filter": ["fortilink", "==", "enable"],
                "fields": ["name"],
                "url": "/pm/config/device/"+device_name+"/global/system/interface"
            }
        ],
        "session": fmg_session
    }
    result = requests.post(URL,json=req,verify=False)
    res = result.json()
    for i in res['result'][0]['data']:
        intf = i['name']
        print(intf)
        getip(fmg_session, intf)
        

def getip(fmg_session, interface):
    req = {
      "id": 6,
      "jsonrpc": "2.0",
      "method": "get",
       "params": [
            {
                "filter": ["interface", "==", interface],
                "fields": ["name","ip"],
                "url": "/pm/config/device/"+device_name+"/global/system/interface"
            }
        ],
        "session": fmg_session
    }
    result = requests.post(URL,json=req,verify=False)
    res = result.json()
    for i in res['result'][0]['data']:
        print(i['name'])
        print(i['ip'])

session = fmg_login()
print(session)
getflinkintf(session)