แž€แžถแžšแž’แŸ’แžœแžพแžฑแŸ’แž™แžŸแžถแž˜แž‰แŸ’แž‰แž“แžผแžœ Check Point API แž‡แžถแž˜แžฝแž™ Python SDK

แž€แžถแžšแž’แŸ’แžœแžพแžฑแŸ’แž™แžŸแžถแž˜แž‰แŸ’แž‰แž“แžผแžœ Check Point API แž‡แžถแž˜แžฝแž™ Python SDKแžแžถแž˜แž–แž›แž–แŸแž‰แž›แŸแž‰แž“แŸƒแžขแž“แŸ’แžแžšแž€แž˜แŸ’แž˜แž‡แžถแž˜แžฝแž™ APIs แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž แžถแž‰แž“แŸ…แž–แŸแž›แž”แŸ’แžšแžพแžšแžฝแž˜แž‚แŸ’แž“แžถแž‡แžถแž˜แžฝแž™แž€แžผแžŠแž€แž˜แŸ’แž˜แžœแžทแž’แžธ แž“แŸ…แž–แŸแž›แžŠแŸ‚แž›แžœแžถแžขแžถแž…แž’แŸ’แžœแžพแž‘แŸ…แž”แžถแž“แžŠแžพแž˜แŸ’แž”แžธแž”แž„แŸ’แž€แžพแžแžŸแŸ†แžŽแžพ API แž“แžทแž„แžงแž”แž€แžšแžŽแŸแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžœแžทแž—แžถแž‚แž€แžถแžšแž†แŸ’แž›แžพแž™แžแž” API แŸ” แž‘แŸ„แŸ‡แž™แŸ‰แžถแž„แžŽแžถแž€แŸแžŠแŸ„แž™ แžœแžถแž“แŸ…แžแŸ‚แž˜แžทแž“แžขแžถแž…แž€แžแŸ‹แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แž”แžถแž“แŸ” แž€แž‰แŸ’แž…แž”แŸ‹แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž€แž˜แŸ’แž˜แžœแžทแž’แžธ Python (แžแž‘แŸ…แž“แŸแŸ‡แž แŸ…แžแžถ Python SDK) แžŸแž˜แŸ’แžšแžถแž”แŸ‹ แž–แžทแž“แžทแžแŸ’แž™แž…แŸ†แžŽแžปแž…แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„ APIแž”แŸ‰แžปแž“แŸ’แžแŸ‚แž“แŸ…แž€แŸ’แž“แžปแž„แžฅแžแž”แŸ’แžšแž™แŸ„แž‡แž“แŸแŸ” แžœแžถแž‡แžฝแž™แžŸแž˜แŸ’แžšแžฝแž›แžŠแž›แŸ‹แž‡แžธแžœแžทแžแžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸ แž“แžทแž„แžขแŸ’แž“แž€แž…แžผแž›แž…แžทแžแŸ’แžแžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž™แŸ‰แžถแž„แž„แžถแž™แžŸแŸ’แžšแžฝแž›แŸ” Python แž‘แž‘แžฝแž›แž”แžถแž“แž”แŸ’แžšแž‡แžถแž”แŸ’แžšแžทแž™แž—แžถแž–แž™แŸ‰แžถแž„แžแŸ’แž›แžถแŸ†แž„แž“แžถแž–แŸแž›แžแŸ’แž˜แžธแŸ—แž“แŸแŸ‡ แž แžพแž™แžแŸ’แž‰แžปแŸ†แž”แžถแž“แžŸแž˜แŸ’แžšแŸแž…แž…แžทแžแŸ’แžแž”แŸ†แž–แŸแž‰แž…แž“แŸ’แž›แŸ„แŸ‡ แž“แžทแž„แž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แž›แž€แŸ’แžแžŽแŸˆแžŸแŸ†แžแžถแž“แŸ‹แŸ—แŸ” แž–แžทแž“แžทแžแŸ’แž™แž…แŸ†แžŽแžปแž… API แž€แž‰แŸ’แž…แž”แŸ‹แžขแž—แžทแžœแžŒแŸ’แžแž“แŸ Python. แžขแžแŸ’แžแž”แž‘แž“แŸแŸ‡แž”แž˜แŸ’แžšแžพแž‡แžถแž€แžถแžšแž”แž“แŸ’แžแŸ‚แž˜แžŠแŸแž›แŸ’แžขแž…แŸ†แž–แŸ„แŸ‡แžขแžแŸ’แžแž”แž‘แž˜แžฝแž™แž‘แŸ€แžแž“แŸ…แž›แžพ Habre แž–แžทแž“แžทแžแŸ’แž™แž…แŸ†แžŽแžปแž… R80.10 API แŸ” แž€แžถแžšแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แžแžถแž˜แžšแž™แŸˆ CLI แžŸแŸ’แž‚แŸ’แžšแžธแž” แž“แžทแž„แž…แŸ’แžšแžพแž“แž‘แŸ€แž. แž™แžพแž„แž“แžนแž„แž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžšแž”แŸ€แž”แžŸแžšแžŸแŸแžšแžŸแŸ’แž‚แŸ’แžšแžธแž”แžŠแŸ„แž™แž”แŸ’แžšแžพ Python SDK แž แžพแž™แž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžฑแŸ’แž™แž€แžถแž“แŸ‹แžแŸ‚แž…แŸ’แž”แžถแžŸแŸ‹แžขแŸ†แž–แžธแž˜แžปแžแž„แžถแžšแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„ API แžแŸ’แž˜แžธแž“แŸ…แž€แŸ’แž“แžปแž„แž€แŸ†แžŽแŸ‚ 1.6 (แž‚แžถแŸ†แž‘แŸ’แžšแž…แžถแž”แŸ‹แž–แžธ R80.40)แŸ” แžŠแžพแž˜แŸ’แž”แžธแž™แž›แŸ‹แž–แžธแžขแžแŸ’แžแž”แž‘ แžขแŸ’แž“แž€แž“แžนแž„แžแŸ’แžšแžผแžœแž€แžถแžšแž…แŸ†แžŽแŸแŸ‡แžŠแžนแž„แž‡แžถแž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž€แŸ’แž“แžปแž„แž€แžถแžšแž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™ APIs แž“แžทแž„ Python แŸ”

Check Point แž€แŸ†แž–แžปแž„แžขแž—แžทแžœแžŒแŸ’แž API แž™แŸ‰แžถแž„แžŸแž€แž˜แŸ’แž˜ แž แžพแž™แž“แŸ…แž–แŸแž›แž“แŸแŸ‡ แžแžถแž„แž€แŸ’แžšแŸ„แž˜แž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž…แŸแž‰แž•แŸ’แžŸแžถแž™แŸ–

Python SDK แž”แž…แŸ’แž…แžปแž”แŸ’แž”แž“แŸ’แž“แž‚แžถแŸ†แž‘แŸ’แžšแžแŸ‚แžขแž“แŸ’แžแžšแž€แž˜แŸ’แž˜แž‡แžถแž˜แžฝแž™ API แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„ แž“แžทแž„ Gaia API. แž™แžพแž„แž“แžนแž„แž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžแŸ’แž“แžถแž€แŸ‹แžŸแŸ†แžแžถแž“แŸ‹แŸ— แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แž แž“แžทแž„แžขแžแŸแžšแž“แŸ…แž€แŸ’แž“แžปแž„แž˜แŸ‰แžผแžŒแžปแž›แž“แŸแŸ‡แŸ”

แž€แžถแžšแž’แŸ’แžœแžพแžฑแŸ’แž™แžŸแžถแž˜แž‰แŸ’แž‰แž“แžผแžœ Check Point API แž‡แžถแž˜แžฝแž™ Python SDK

แž€แžถแžšแžŠแŸ†แžกแžพแž„แž˜แŸ‰แžผแžŒแžปแž›

แž˜แŸ‰แžผแžŒแžปแž› cpapi แžŠแŸ†แžกแžพแž„แž™แŸ‰แžถแž„แžšแž แŸแžŸ แž“แžทแž„แž„แžถแž™แžŸแŸ’แžšแžฝแž›แž–แžธ แžƒแŸ’แž›แžถแŸ†แž„ Check Point แž•แŸ’แž›แžผแžœแž€แžถแžšแž“แŸ…แž›แžพ github แžŠแŸ„แž™แž˜แžถแž“แž‡แŸ†แž“แžฝแž™ PIP. แžŸแŸแž…แž€แŸ’แžแžธแžŽแŸ‚แž“แžถแŸ†แžขแŸ†แž–แžธแž€แžถแžšแžŠแŸ†แžกแžพแž„แž›แž˜แŸ’แžขแžทแžแž˜แžถแž“แž“แŸ…แž€แŸ’แž“แžปแž„ README.md. แž˜แŸ‰แžผแžŒแžปแž›แž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ‚แžŸแž˜แŸ’แžšแžฝแž›แžŠแžพแž˜แŸ’แž”แžธแž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™ Python แž€แŸ†แžŽแŸ‚ 2.7 แž“แžทแž„ 3.7 แŸ” แž“แŸ…แž€แŸ’แž“แžปแž„แžขแžแŸ’แžแž”แž‘แž“แŸแŸ‡ แžงแž‘แžถแž แžšแžŽแŸแž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แžแž›แŸ‹แžฑแŸ’แž™แžŠแŸ„แž™แž”แŸ’แžšแžพ Python 3.7 แŸ” แž‘แŸ„แŸ‡แž™แŸ‰แžถแž„แžŽแžถแž€แŸแžŠแŸ„แž™ Python SDK แžขแžถแž…แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŠแŸ„แž™แž•แŸ’แž‘แžถแž›แŸ‹แž–แžธ Check Point Management Server (Smart Management) แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž–แžฝแž€แž‚แŸแž‚แžถแŸ†แž‘แŸ’แžšแžแŸ‚ Python 2.7 แžŠแžผแž…แŸ’แž“แŸแŸ‡แž•แŸ’แž“แŸ‚แž€แž…แžปแž„แž€แŸ’แžšแŸ„แž™แž“แžนแž„แž•แŸ’แžแž›แŸ‹แž€แžผแžŠแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แŸ†แžŽแŸ‚ 2.7 แŸ” แž—แŸ’แž›แžถแž˜แŸ—แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแžŠแŸ†แžกแžพแž„แž˜แŸ‰แžผแžŒแžปแž›แžแŸ’แž‰แžปแŸ†แžŸแžผแž˜แžŽแŸ‚แž“แžถแŸ†แžฑแŸ’แž™แž˜แžพแž›แžงแž‘แžถแž แžšแžŽแŸแž“แŸ…แž€แŸ’แž“แžปแž„แžแž example_python2 ะธ example_python3.

แž€แžถแžšแž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜

แžŠแžพแž˜แŸ’แž”แžธแžฑแŸ’แž™แž™แžพแž„แžขแžถแž…แž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™แžŸแž˜แžถแžŸแž’แžถแžแžปแž“แŸƒแž˜แŸ‰แžผแžŒแžปแž› cpapi แž™แžพแž„แžแŸ’แžšแžผแžœแž“แžถแŸ†แž…แžผแž›แž–แžธแž˜แŸ‰แžผแžŒแžปแž› cpapi แž™แŸ‰แžถแž„แž แŸ„แž…แžŽแžถแžŸแŸ‹แž–แžธแžšแžแŸ’แž“แžถแž€แŸ‹แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž€แžถแžšแŸ–

APIClient ะธ APIClientArgs

from cpapi import APIClient, APIClientArgs

ะšะปะฐัั APIClientArgs แž‘แž‘แžฝแž›แžแžปแžŸแžแŸ’แžšแžผแžœแž…แŸ†แž–แŸ„แŸ‡แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแžแž—แŸ’แž‡แžถแž”แŸ‹แž‘แŸ…แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ API แž“แžทแž„แžแŸ’แž“แžถแž€แŸ‹ APIClient แž‘แž‘แžฝแž›แžแžปแžŸแžแŸ’แžšแžผแžœแž…แŸ†แž–แŸ„แŸ‡แžขแž“แŸ’แžแžšแž€แž˜แŸ’แž˜แž‡แžถแž˜แžฝแž™ API แŸ”

แž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž“แŸƒแž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹

แžŠแžพแž˜แŸ’แž”แžธแž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž•แŸ’แžŸแŸแž„แŸ—แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž—แŸ’แž‡แžถแž”แŸ‹แž‘แŸ… API แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแž”แž„แŸ’แž€แžพแžแžงแž‘แžถแž แžšแžŽแŸแž“แŸƒแžแŸ’แž“แžถแž€แŸ‹ APIClientArgs. แž‡แžถแž‚แŸ„แž›แž€แžถแžšแžŽแŸ แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแžšแž”แžŸแŸ‹แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ†แžŽแžแŸ‹แž‡แžถแž˜แžปแž“ แž แžพแž™แž“แŸ…แž–แŸแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŸแŸ’แž‚แŸ’แžšแžธแž”แž“แŸ…แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž”แž‰แŸ’แž‡แžถ แž–แžฝแž€แž‚แŸแž˜แžทแž“แž…แžถแŸ†แž”แžถแž…แŸ‹แž”แž‰แŸ’แž‡แžถแž€แŸ‹แž‘แŸแŸ”

client_args = APIClientArgs()

แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž“แŸ…แž–แŸแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž—แžถแž‚แžธแž‘แžธแž”แžธ แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแž”แž‰แŸ’แž‡แžถแž€แŸ‹แž™แŸ‰แžถแž„แž แŸ„แž…แžŽแžถแžŸแŸ‹แžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“ IP แžฌแžˆแŸ’แž˜แŸ„แŸ‡แž˜แŸ‰แžถแžŸแŸŠแžธแž“แžšแž”แžŸแŸ‹แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ API (แžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸแžŸแŸ’แž‚แžถแž›แŸ‹แžแžถแž‡แžถแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„)แŸ” แž€แŸ’แž“แžปแž„แžงแž‘แžถแž แžšแžŽแŸแžแžถแž„แž€แŸ’แžšแŸ„แž˜ แž™แžพแž„แž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž“แŸƒแž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ แž แžพแž™แž•แŸ’แžแž›แŸ‹แžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“ IP แžšแž”แžŸแŸ‹แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž‡แžถแžแŸ’แžŸแŸ‚แžขแž€แŸ’แžŸแžšแŸ”

client_args = APIClientArgs(server='192.168.47.241')

แžŸแžผแž˜แž€แŸ’แžšแžกแŸแž€แž˜แžพแž›แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž‘แžถแŸ†แž„แžขแžŸแŸ‹ แž“แžทแž„แžแž˜แŸ’แž›แŸƒแž›แŸ†แž“แžถแŸ†แžŠแžพแž˜แžšแž”แžŸแŸ‹แžœแžถ แžŠแŸ‚แž›แžขแžถแž…แž”แŸ’แžšแžพแž”แžถแž“แž“แŸ…แž–แŸแž›แž—แŸ’แž‡แžถแž”แŸ‹แž‘แŸ…แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ APIแŸ–

แžขแžถแž‚แžปแž™แž˜แŸ‰แž„แŸ‹แž“แŸƒแžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžš __init__ แž“แŸƒแžแŸ’แž“แžถแž€แŸ‹ APIClientArgs

class APIClientArgs:
    """
    This class provides arguments for APIClient configuration.
    All the arguments are configured with their default values.
    """

    # port is set to None by default, but it gets replaced with 443 if not specified
    # context possible values - web_api (default) or gaia_api
    def __init__(self, port=None, fingerprint=None, sid=None, server="127.0.0.1", http_debug_level=0,
                 api_calls=None, debug_file="", proxy_host=None, proxy_port=8080,
                 api_version=None, unsafe=False, unsafe_auto_accept=False, context="web_api"):
        self.port = port
        # management server fingerprint
        self.fingerprint = fingerprint
        # session-id.
        self.sid = sid
        # management server name or IP-address
        self.server = server
        # debug level
        self.http_debug_level = http_debug_level
        # an array with all the api calls (for debug purposes)
        self.api_calls = api_calls if api_calls else []
        # name of debug file. If left empty, debug data will not be saved to disk.
        self.debug_file = debug_file
        # HTTP proxy server address (without "http://")
        self.proxy_host = proxy_host
        # HTTP proxy port
        self.proxy_port = proxy_port
        # Management server's API version
        self.api_version = api_version
        # Indicates that the client should not check the server's certificate
        self.unsafe = unsafe
        # Indicates that the client should automatically accept and save the server's certificate
        self.unsafe_auto_accept = unsafe_auto_accept
        # The context of using the client - defaults to web_api
        self.context = context

แžแŸ’แž‰แžปแŸ†แž‡แžฟแžแžถแžขแžถแž‚แžปแž™แž˜แŸ‰แž„แŸ‹แžŠแŸ‚แž›แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแž“แŸ…แž€แŸ’แž“แžปแž„แžงแž‘แžถแž แžšแžŽแŸแž“แŸƒแžแŸ’แž“แžถแž€แŸ‹ APIClientArgs แž‚แžบแžœแžทแž…แžถแžšแžŽแž‰แžถแžŽแž…แŸ†แž–แŸ„แŸ‡แžขแŸ’แž“แž€แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„ Check Point แž แžพแž™แž˜แžทแž“แžแŸ’แžšแžผแžœแž€แžถแžšแž˜แžแžทแž™แŸ„แž”แž›แŸ‹แž”แž“แŸ’แžแŸ‚แž˜แž‘แŸแŸ”

แž€แŸ†แž–แžปแž„แž—แŸ’แž‡แžถแž”แŸ‹แžแžถแž˜แžšแž™แŸˆ APIClient แž“แžทแž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž”แžšแžทแž”แž‘

ะšะปะฐัั APIClient แž˜แž’แŸ’แž™แŸ„แž”แžถแž™แž„แžถแž™แžŸแŸ’แžšแžฝแž›แž”แŸ†แž•แžปแžแž€แŸ’แž“แžปแž„แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžœแžถแž‚แžบแžแžถแž˜แžšแž™แŸˆแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž”แžšแžทแž”แž‘แŸ” แžขแŸ’แžœแžธแž‘แžถแŸ†แž„แžขแžŸแŸ‹แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แž‰แŸ’แž‡แžผแž“แž‘แŸ…แž€แžถแž“แŸ‹แžงแž‘แžถแž แžšแžŽแŸแž“แŸƒแžแŸ’แž“แžถแž€แŸ‹ APIClient แž‚แžบแž‡แžถแž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž“แŸƒแž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ†แžŽแžแŸ‹แž€แŸ’แž“แžปแž„แž‡แŸ†แž แžถแž“แž˜แžปแž“แŸ”

with APIClient(client_args) as client:

แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž”แžšแžทแž”แž‘แž“แžนแž„แž˜แžทแž“แž’แŸ’แžœแžพแž€แžถแžšแž แŸ…แž…แžผแž›แžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž‘แŸ…แž€แžถแž“แŸ‹แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ API แž“แŸ„แŸ‡แž‘แŸ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แžœแžถแž“แžนแž„แž’แŸ’แžœแžพแž€แžถแžšแž แŸ…แž…แŸแž‰แž“แŸ…แž–แŸแž›แž…แŸแž‰แž–แžธแžœแžถแŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแž แŸแžแžปแž•แž›แž˜แžฝแž™แž…แŸ†แž“แžฝแž“แž˜แžทแž“แžแž˜แŸ’แžšแžผแžœแžฑแŸ’แž™แž…แžถแž€แž…แŸแž‰แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž”แž‰แŸ’แž…แž”แŸ‹แž€แžถแžšแž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™แž€แžถแžšแž แŸ… API แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž’แŸ’แžœแžพแž€แžถแžšแžŠแŸ„แž™แž˜แžทแž“แž”แŸ’แžšแžพแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž”แžšแžทแž”แž‘แŸ–

client = APIClient(clieng_args)

แž€แŸ†แž–แžปแž„แž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹

แž˜แž’แŸ’แž™แŸ„แž”แžถแž™แž„แžถแž™แžŸแŸ’แžšแžฝแž›แž”แŸ†แž•แžปแžแžŠแžพแž˜แŸ’แž”แžธแž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžแžถแžแžพแž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹แžแŸ’แžšแžผแžœแž“แžนแž„แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแžŠแŸ‚แž›แž”แžถแž“แž”แž‰แŸ’แž‡แžถแž€แŸ‹แž€แŸ†แž–แžปแž„แž”แŸ’แžšแžพแžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžš แž–แžทแž“แžทแžแŸ’แž™_แžŸแŸ’แž“แžถแž˜แž˜แŸ’แžšแžถแž˜แžŠแŸƒ. แž”แŸ’แžšแžŸแžทแž“แž”แžพแž€แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แž•แž›แž”แžผแž€แž“แŸƒ sha1 hash แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŸแŸ’แž“แžถแž˜แž˜แŸ’แžšแžถแž˜แžŠแŸƒแž“แŸƒแžœแžทแž‰แŸ’แž‰แžถแž”แž“แž”แžแŸ’แžš API แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž”แžšแžถแž‡แŸแž™ (แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžšแžแŸ’แžšแžกแž”แŸ‹ False) แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€ แžœแžถแž‡แžถแž’แž˜แŸ’แž˜แžแžถแž”แžŽแŸ’แžแžถแž›แž˜แž€แž–แžธแž”แž‰แŸ’แž แžถแž“แŸƒแž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹ แž แžพแž™แž™แžพแž„แžขแžถแž…แž”แž‰แŸ’แžˆแž”แŸ‹แž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž“แŸƒแž€แž˜แŸ’แž˜แžœแžทแž’แžธ (แžฌแž•แŸ’แžแž›แŸ‹แžฑแŸ’แž™แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž“แžผแžœแžฑแž€แžถแžŸแžŠแžพแž˜แŸ’แž”แžธแž€แŸ‚แžแž˜แŸ’แžšแžผแžœแž‘แžทแž“แŸ’แž“แž“แŸแž™แž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹):

    if client.check_fingerprint() is False:
        print("Could not get the server's fingerprint - Check connectivity with the server.")
        exit(1)

แžŸแžผแž˜แž…แŸ†แžŽแžถแŸ†แžแžถแž“แŸ…แž–แŸแž›แžขแž“แžถแž‚แžแžแŸ’แž“แžถแž€แŸ‹ APIClient แž“แžนแž„แž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžšแžถแž›แŸ‹แž€แžถแžšแž แŸ… API (แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แž api_call ะธ api_queryแž™แžพแž„แž“แžนแž„แž“แžทแž™แžถแž™แžขแŸ†แž–แžธแž–แžฝแž€แž‚แŸแž”แž“แŸ’แžแžทแž…แž‘แŸ€แž) แžœแžทแž‰แŸ’แž‰แžถแž”แž“แž”แžแŸ’แžšแžŸแŸ’แž“แžถแž˜แž˜แŸ’แžšแžถแž˜แžŠแŸƒ sha1 แž“แŸ…แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ API แŸ” แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž”แŸ’แžšแžŸแžทแž“แž”แžพแž“แŸ…แž–แŸแž›แž–แžทแž“แžทแžแŸ’แž™แžŸแŸ’แž“แžถแž˜แž˜แŸ’แžšแžถแž˜แžŠแŸƒ sha1 แž“แŸƒแžœแžทแž‰แŸ’แž‰แžถแž”แž“แž”แžแŸ’แžšแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ API แž€แŸ†แž แžปแžŸแžแŸ’แžšแžผแžœแž”แžถแž“แžšแž€แžƒแžพแž‰ (แžœแžทแž‰แŸ’แž‰แžถแž”แž“แž”แžแŸ’แžšแž˜แžทแž“แžŸแŸ’แž‚แžถแž›แŸ‹ แžฌแžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžš) แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžš แž–แžทแž“แžทแžแŸ’แž™_แžŸแŸ’แž“แžถแž˜แž˜แŸ’แžšแžถแž˜แžŠแŸƒ แž“แžนแž„แž•แŸ’แžแž›แŸ‹แžฑแž€แžถแžŸแžŠแžพแž˜แŸ’แž”แžธแž”แž“แŸ’แžแŸ‚แž˜/แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž–แŸแžแŸŒแž˜แžถแž“แžขแŸ†แž–แžธแžœแžถแž“แŸ…แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแŸ” แž€แžถแžšแžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™แž“แŸแŸ‡แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แžทแž‘แž‘แžถแŸ†แž„แžŸแŸ’แžšแžปแž„ (แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž“แŸแŸ‡แžขแžถแž…แžŽแŸ‚แž“แžถแŸ†แž”แžถแž“แž›แžปแŸ‡แžแŸ’แžšแžถแžแŸ‚แžŸแŸ’แž‚แŸ’แžšแžธแž”แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž“แŸ…แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ API แžแŸ’แž›แžฝแž“แžœแžถ แž“แŸ…แž–แŸแž›แž—แŸ’แž‡แžถแž”แŸ‹แž‘แŸ… 127.0.0.1) แžŠแŸ„แž™แž”แŸ’แžšแžพแžขแžถแž‚แžปแž™แž˜แŸ‰แž„แŸ‹ APIClientArgs - unsafe_auto_accept (แžŸแžผแž˜แž˜แžพแž›แž”แž“แŸ’แžแŸ‚แž˜แžขแŸ†แž–แžธ APIClientArgs แž˜แžปแž“แž“แŸ…แž€แŸ’แž“แžปแž„ "แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹") แŸ”

client_args = APIClientArgs(unsafe_auto_accept=True)

แž…แžผแž›แž‘แŸ…แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ API

ะฃ APIClient แž˜แžถแž“แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แžแž‡แžถแž…แŸ’แžšแžพแž“แžŠแžผแž…แž‡แžถ 3 แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž…แžผแž›แž‘แŸ…แž€แŸ’แž“แžปแž„แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ API แž แžพแž™แž–แžฝแž€แž‚แŸแž˜แŸ’แž“แžถแž€แŸ‹แŸ—แž™แž›แŸ‹แž–แžธแžขแžแŸ’แžแž“แŸแž™ sid(session-id) แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž แŸ… API แž‡แžถแž”แž“แŸ’แžแž”แž“แŸ’แž‘แžถแž”แŸ‹แž“แžธแž˜แžฝแž™แŸ—แž“แŸ…แž€แŸ’แž“แžปแž„แž”แž‹แž˜แž€แžแžถ (แžˆแŸ’แž˜แŸ„แŸ‡แž“แŸ…แž€แŸ’แž“แžปแž„แž”แž‹แž˜แž€แžแžถแž“แŸƒแž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž“แŸแŸ‡แž‚แžบ X-chkp-sid) แžŠแžผแž…แŸ’แž“แŸแŸ‡แž˜แžทแž“แž…แžถแŸ†แž”แžถแž…แŸ‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž“แŸแŸ‡แž‘แŸ€แžแž‘แŸแŸ”

แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แžแž…แžผแž›

แž‡แž˜แŸ’แžšแžพแžŸแžŠแŸ„แž™แž”แŸ’แžšแžพแž€แžถแžšแž…แžผแž› แž“แžทแž„แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹ (แž€แŸ’แž“แžปแž„แžงแž‘แžถแž แžšแžŽแŸ แžˆแŸ’แž˜แŸ„แŸ‡แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ แžขแŸ’แž“แž€แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„ แž“แžทแž„แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹ 1q2w3e แžแŸ’แžšแžผแžœแž”แžถแž“แž†แŸ’แž›แž„แž€แžถแžแŸ‹แž‡แžถแžขแžถแž‚แžปแž™แž˜แŸ‰แž„แŸ‹แž‘แžธแžแžถแŸ†แž„)แŸ–

     login = client.login('admin', '1q2w3e')  

แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž‡แž˜แŸ’แžšแžพแžŸแž”แž“แŸ’แžแŸ‚แž˜แž€แŸแž˜แžถแž“แž“แŸ…แž€แŸ’แž“แžปแž„แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžšแž…แžผแž›แžŠแŸ‚แžš แž“แŸแŸ‡แž‚แžบแž‡แžถแžˆแŸ’แž˜แŸ„แŸ‡ แž“แžทแž„แžแž˜แŸ’แž›แŸƒแž›แŸ†แž“แžถแŸ†แžŠแžพแž˜แžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸแŸ–

continue_last_session=False, domain=None, read_only=False, payload=None

แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžš Login_with_api_key

แž‡แž˜แŸ’แžšแžพแžŸแžŠแŸ„แž™แž”แŸ’แžšแžพแžŸแŸ„ api (แž‚แžถแŸ†แž‘แŸ’แžšแžŠแŸ„แž™แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž–แžธแž€แŸ†แžŽแŸ‚แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„ R80.40/Management API v1.6, "3TsbPJ8ZKjaJGvFyoFqHFA==" แž“แŸแŸ‡โ€‹แž‡แžถโ€‹แžแž˜แŸ’แž›แŸƒโ€‹แž‚แž“แŸ’แž›แžนแŸ‡ API แžŸแž˜แŸ’แžšแžถแž”แŸ‹โ€‹แžขแŸ’แž“แž€โ€‹แž”แŸ’แžšแžพโ€‹แž˜แŸ’แž“แžถแž€แŸ‹โ€‹แž“แŸ…โ€‹แž›แžพโ€‹แž˜แŸ‰แžถแžŸแŸŠแžธแž“โ€‹แž˜แŸโ€‹แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„โ€‹แž‡แžถแž˜แžฝแž™โ€‹แž“แžนแž„โ€‹แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžšโ€‹แžขแž“แžปแž‰แŸ’แž‰แžถแžโ€‹แž‚แž“แŸ’แž›แžนแŸ‡ APIแŸ–

     login = client.login_with_api_key('3TsbPJ8ZKjaJGvFyoFqHFA==') 

แž“แŸ…แž€แŸ’แž“แžปแž„แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แž login_with_api_key แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž‡แž˜แŸ’แžšแžพแžŸแžŠแžผแž…แž‚แŸ’แž“แžถแž‚แžบแžขแžถแž…แžšแž€แž”แžถแž“แžŠแžผแž…แž“แŸ…แž€แŸ’แž“แžปแž„แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แž แž…แžผแž›.

แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžš login_as_root

แž‡แž˜แŸ’แžšแžพแžŸแžŠแžพแž˜แŸ’แž”แžธแž…แžผแž›แž‘แŸ…แž€แžถแž“แŸ‹แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž‡แžถแž˜แžฝแž™แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ APIแŸ–

     login = client.login_as_root()

แž˜แžถแž“แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแžŸแŸ’แžšแŸแž…แž…แžทแžแŸ’แžแžแŸ‚แž–แžธแžšแž”แŸ‰แžปแžŽแŸ’แžŽแŸ„แŸ‡แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžšแž“แŸแŸ‡แŸ–

domain=None, payload=None

แž แžพแž™แž‘แžธแž”แŸ†แž•แžปแž API แž แŸ…แžแŸ’แž›แžฝแž“แžฏแž„

แž™แžพแž„แž˜แžถแž“แž‡แž˜แŸ’แžšแžพแžŸแž–แžธแžšแžŠแžพแž˜แŸ’แž”แžธแž’แŸ’แžœแžพแž€แžถแžšแž แŸ… API แžแžถแž˜แžšแž™แŸˆแžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แž api_call ะธ api_query. แž…แžผแžšแž™แžพแž„แžŸแŸ’แžœแŸ‚แž„แž™แž›แŸ‹แžแžถแžแžพแžขแŸ’แžœแžธแž‡แžถแž—แžถแž–แžแžปแžŸแž‚แŸ’แž“แžถแžšแžœแžถแž„แž–แžฝแž€แž‚แŸแŸ”

api_call

แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แžแž“แŸแŸ‡แžขแžถแž…แžขแž“แžปแžœแžแŸ’แžแž”แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž แŸ…แž‘แžผแžšแžŸแž–แŸ’แž‘แžŽแžถแž˜แžฝแž™แŸ” แž™แžพแž„แžแŸ’แžšแžผแžœแž†แŸ’แž›แž„แž€แžถแžแŸ‹แž•แŸ’แž“แŸ‚แž€แž…แžปแž„แž€แŸ’แžšแŸ„แž™แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž แŸ… api แž“แžทแž„ payload แž“แŸ…แž€แŸ’แž“แžปแž„แž•แŸ’แž“แŸ‚แž€แžŸแŸ†แžŽแžพแž”แŸ’แžšแžŸแžทแž“แž”แžพแž…แžถแŸ†แž”แžถแž…แŸ‹แŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพ payload แž‚แžบแž‘แž‘แŸ แž“แŸ„แŸ‡แžœแžถแž˜แžทแž“แžขแžถแž…แž”แž‰แŸ’แž‡แžผแž“แž”แžถแž“แž‘แžถแž›แŸ‹แžแŸ‚แžŸแŸ„แŸ‡แŸ–

api_versions = client.api_call('show-api-versions') 

แž›แž‘แŸ’แž’แž•แž›แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŸแŸ†แžŽแžพแž“แŸแŸ‡แžแžถแž„แž€แŸ’แžšแŸ„แž˜แž€แžถแžแŸ‹แŸ–

In [23]: api_versions                                                           
Out[23]: 
APIResponse({
    "data": {
        "current-version": "1.6",
        "supported-versions": [
            "1",
            "1.1",
            "1.2",
            "1.3",
            "1.4",
            "1.5",
            "1.6"
        ]
    },
    "res_obj": {
        "data": {
            "current-version": "1.6",
            "supported-versions": [
                "1",
                "1.1",
                "1.2",
                "1.3",
                "1.4",
                "1.5",
                "1.6"
            ]
        },
        "status_code": 200
    },
    "status_code": 200,
    "success": true
})
show_host = client.api_call('show-host', {'name' : 'h_8.8.8.8'})

แž›แž‘แŸ’แž’แž•แž›แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŸแŸ†แžŽแžพแž“แŸแŸ‡แžแžถแž„แž€แŸ’แžšแŸ„แž˜แž€แžถแžแŸ‹แŸ–

In [25]: show_host                                                              
Out[25]: 
APIResponse({
    "data": {
        "color": "black",
        "comments": "",
        "domain": {
            "domain-type": "domain",
            "name": "SMC User",
            "uid": "41e821a0-3720-11e3-aa6e-0800200c9fde"
        },
        "groups": [],
        "icon": "Objects/host",
        "interfaces": [],
        "ipv4-address": "8.8.8.8",
        "meta-info": {
            "creation-time": {
                "iso-8601": "2020-05-01T21:49+0300",
                "posix": 1588358973517
            },
            "creator": "admin",
            "last-modifier": "admin",
            "last-modify-time": {
                "iso-8601": "2020-05-01T21:49+0300",
                "posix": 1588358973517
            },
            "lock": "unlocked",
            "validation-state": "ok"
        },
        "name": "h_8.8.8.8",
        "nat-settings": {
            "auto-rule": false
        },
        "read-only": false,
        "tags": [],
        "type": "host",
        "uid": "c210af07-1939-49d3-a351-953a9c471d9e"
    },
    "res_obj": {
        "data": {
            "color": "black",
            "comments": "",
            "domain": {
                "domain-type": "domain",
                "name": "SMC User",
                "uid": "41e821a0-3720-11e3-aa6e-0800200c9fde"
            },
            "groups": [],
            "icon": "Objects/host",
            "interfaces": [],
            "ipv4-address": "8.8.8.8",
            "meta-info": {
                "creation-time": {
                    "iso-8601": "2020-05-01T21:49+0300",
                    "posix": 1588358973517
                },
                "creator": "admin",
                "last-modifier": "admin",
                "last-modify-time": {
                    "iso-8601": "2020-05-01T21:49+0300",
                    "posix": 1588358973517
                },
                "lock": "unlocked",
                "validation-state": "ok"
            },
            "name": "h_8.8.8.8",
            "nat-settings": {
                "auto-rule": false
            },
            "read-only": false,
            "tags": [],
            "type": "host",
            "uid": "c210af07-1939-49d3-a351-953a9c471d9e"
        },
        "status_code": 200
    },
    "status_code": 200,
    "success": true
})

api_query

แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžแŸ’แž‰แžปแŸ†แž’แŸ’แžœแžพแž€แžถแžšแž€แž€แŸ‹แž‘แžปแž€แž—แŸ’แž›แžถแž˜แŸ—แžแžถแžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžšแž“แŸแŸ‡แžขแžถแž…แžขแž“แžปแžœแžแŸ’แžแž”แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžแŸ‚แž€แžถแžšแž แŸ…แž‘แžผแžšแžŸแž–แŸ’แž‘แžŠแŸ‚แž›แž›แž‘แŸ’แž’แž•แž›แž‘แžถแž€แŸ‹แž‘แž„แž“แžนแž„แžขแžปแž แŸ’แžœแžŸแžทแžแž”แŸ‰แžปแžŽแŸ’แžŽแŸ„แŸ‡แŸ” แž€แžถแžšแžŸแž“แŸ’แž“แžทแžŠแŸ’แž‹แžถแž“แž”แŸ‚แž”แž“แŸแŸ‡แž€แžพแžแžกแžพแž„แž“แŸ…แž–แŸแž›แžŠแŸ‚แž›แžœแžถแž˜แžถแž“ แžฌแžขแžถแž…แž˜แžถแž“แž–แŸแžแŸŒแž˜แžถแž“แž…แŸ’แžšแžพแž“แŸ” แžงแž‘แžถแž แžšแžŽแŸ แž“แŸแŸ‡แžขแžถแž…แž‡แžถแžŸแŸ†แžŽแžพแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แž‰แŸ’แž‡แžธแž“แŸƒแžœแžแŸ’แžแžปแž˜แŸ‰แžถแžŸแŸŠแžธแž“แžŠแŸ‚แž›แž”แžถแž“แž”แž„แŸ’แž€แžพแžแž‘แžถแŸ†แž„แžขแžŸแŸ‹แž“แŸ…แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แŸ” แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŸแŸ†แžŽแžพแž”แŸ‚แž”แž“แŸแŸ‡ API แžแŸ’แžšแžกแž”แŸ‹แž”แž‰แŸ’แž‡แžธแžœแžแŸ’แžแžป 50 แžแžถแž˜แž›แŸ†แž“แžถแŸ†แžŠแžพแž˜ (แžขแŸ’แž“แž€แžขแžถแž…แž”แž„แŸ’แž€แžพแž“แžŠแŸ‚แž“แž€แŸ†แžŽแžแŸ‹แžŠแž›แŸ‹ 500 แžœแžแŸ’แžแžปแž€แŸ’แž“แžปแž„แž€แžถแžšแž†แŸ’แž›แžพแž™แžแž”) แŸ” แž แžพแž™แžŠแžพแž˜แŸ’แž”แžธแž€แžปแŸ†แžฑแŸ’แž™แž‘แžถแž‰แž–แŸแžแŸŒแž˜แžถแž“แž…แŸ’แžšแžพแž“แžŠแž„ แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแžขแžปแž แŸ’แžœแžŸแžทแžแž€แŸ’แž“แžปแž„แžŸแŸ†แžŽแžพ API แž˜แžถแž“แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžš api_query แžŠแŸ‚แž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž“แŸแŸ‡แžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแŸ” แžงแž‘แžถแž แžšแžŽแŸโ€‹แž“แŸƒโ€‹แž€แžถแžšโ€‹แž แŸ…โ€‹แž‘แžผแžšแžŸแž–แŸ’แž‘โ€‹แžŠแŸ‚แž›โ€‹แžแŸ’แžšแžผแžœโ€‹แž€แžถแžšโ€‹แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžšโ€‹แž“แŸแŸ‡แŸ– show-sessions, show-hosts, show-networks, show-wildcards, show-group, show-address-ranges, show-simple-gateways, show-simple-cluster, show-access-roles, show-trusted-client, แž€แž‰แŸ’แž…แž”แŸ‹แž”แž„แŸ’แž แžถแž‰. แžแžถแž˜แž€แžถแžšแž–แžทแž แž™แžพแž„แžƒแžพแž‰แž–แžถแž€แŸ’แž™แž–แž แžปแžœแž…แž“แŸˆแž“แŸ…แž€แŸ’แž“แžปแž„แžˆแŸ’แž˜แŸ„แŸ‡แž“แŸƒแž€แžถแžšแž แŸ… API แž‘แžถแŸ†แž„แž“แŸแŸ‡ แžŠแžผแž…แŸ’แž“แŸแŸ‡แž€แžถแžšแž แŸ…แž‘แžถแŸ†แž„แž“แŸแŸ‡แž“แžนแž„แž€แžถแž“แŸ‹แžแŸ‚แž„แžถแž™แžŸแŸ’แžšแžฝแž›แž€แŸ’แž“แžปแž„แž€แžถแžšแžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžแžถแž˜แžšแž™แŸˆ api_query

show_hosts = client.api_query('show-hosts') 

แž›แž‘แŸ’แž’แž•แž›แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŸแŸ†แžŽแžพแž“แŸแŸ‡แžแžถแž„แž€แŸ’แžšแŸ„แž˜แž€แžถแžแŸ‹แŸ–

In [21]: show_hosts                                                             
Out[21]: 
APIResponse({
    "data": [
        {
            "domain": {
                "domain-type": "domain",
                "name": "SMC User",
                "uid": "41e821a0-3720-11e3-aa6e-0800200c9fde"
            },
            "ipv4-address": "192.168.47.1",
            "name": "h_192.168.47.1",
            "type": "host",
            "uid": "5d7d7086-d70b-4995-971a-0583b15a2bfc"
        },
        {
            "domain": {
                "domain-type": "domain",
                "name": "SMC User",
                "uid": "41e821a0-3720-11e3-aa6e-0800200c9fde"
            },
            "ipv4-address": "8.8.8.8",
            "name": "h_8.8.8.8",
            "type": "host",
            "uid": "c210af07-1939-49d3-a351-953a9c471d9e"
        }
    ],
    "res_obj": {
        "data": {
            "from": 1,
            "objects": [
                {
                    "domain": {
                        "domain-type": "domain",
                        "name": "SMC User",
                        "uid": "41e821a0-3720-11e3-aa6e-0800200c9fde"
                    },
                    "ipv4-address": "192.168.47.1",
                    "name": "h_192.168.47.1",
                    "type": "host",
                    "uid": "5d7d7086-d70b-4995-971a-0583b15a2bfc"
                },
                {
                    "domain": {
                        "domain-type": "domain",
                        "name": "SMC User",
                        "uid": "41e821a0-3720-11e3-aa6e-0800200c9fde"
                    },
                    "ipv4-address": "8.8.8.8",
                    "name": "h_8.8.8.8",
                    "type": "host",
                    "uid": "c210af07-1939-49d3-a351-953a9c471d9e"
                }
            ],
            "to": 2,
            "total": 2
        },
        "status_code": 200
    },
    "status_code": 200,
    "success": true
})

แž€แŸ†แž–แžปแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž›แž‘แŸ’แž’แž•แž›แž“แŸƒแž€แžถแžšแž แŸ… API

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž“แŸแŸ‡แžขแŸ’แž“แž€แžขแžถแž…แž”แŸ’แžšแžพแžขแžแŸแžš แž“แžทแž„แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แžแž“แŸƒแžแŸ’แž“แžถแž€แŸ‹ APIResponse(แž‘แžถแŸ†แž„แžแžถแž„แž€แŸ’แž“แžปแž„แžขแŸ’แž“แž€แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž”แžšแžทแž”แž‘ แž“แžทแž„แžแžถแž„แž€แŸ’แžšแŸ…)แŸ” แž“แŸ…แžแŸ’แž“แžถแž€แŸ‹ APIResponse แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แž 4 แž“แžทแž„ 5 variables แžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ†แžŽแžแŸ‹แž‡แžถแž˜แžปแž“ แž™แžพแž„แž“แžนแž„แžšแžŸแŸ‹แž“แŸ…แž›แžพแžขแŸ’แžœแžธแžŠแŸ‚แž›แžŸแŸ†แžแžถแž“แŸ‹แž”แŸ†แž•แžปแžแžŠแŸ„แž™แž›แž˜แŸ’แžขแžทแžแž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ€แžแŸ”

แž€แžถแžšแž’แŸ’แžœแžพแžฑแŸ’แž™แžŸแžถแž˜แž‰แŸ’แž‰แž“แžผแžœ Check Point API แž‡แžถแž˜แžฝแž™ Python SDK

แž—แžถแž–แž‡แŸ„แž‚แž‡แŸแž™

แžŠแžพแž˜แŸ’แž”แžธแž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜ แžœแžถแž‡แžถแž‚แŸ†แž“แžทแžแž›แŸ’แžขแž€แŸ’แž“แžปแž„แž€แžถแžšแž’แŸ’แžœแžพแžฑแŸ’แž™แž”แŸ’แžšแžถแž€แžŠแžแžถแž€แžถแžšแž แŸ… API แž‘แž‘แžฝแž›แž”แžถแž“แž‡แŸ„แž‚แž‡แŸแž™ แž“แžทแž„แž•แŸ’แžแž›แŸ‹แž›แž‘แŸ’แž’แž•แž›แž˜แž€แžœแžทแž‰แŸ” แž˜แžถแž“แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แžแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžšแžฟแž„แž“แŸแŸ‡ แž—แžถแž–แž‡แŸ„แž‚แž‡แŸแž™:

In [49]: api_versions.success                                                   
Out[49]: True

แžแŸ’แžšแžกแž”แŸ‹ True แž”แŸ’แžšแžŸแžทแž“แž”แžพแž€แžถแžšแž แŸ… API แž‡แŸ„แž‚แž‡แŸแž™ (แž›แŸแžแž€แžผแžŠแž†แŸ’แž›แžพแž™แžแž” - 200) แž“แžทแž„ False แž”แŸ’แžšแžŸแžทแž“แž”แžพแž˜แžทแž“แž‡แŸ„แž‚แž‡แŸแž™ (แž›แŸแžแž€แžผแžŠแž†แŸ’แž›แžพแž™แžแž”แž•แŸ’แžŸแŸแž„แž‘แŸ€แž)แŸ” แžœแžถแž„แžถแž™แžŸแŸ’แžšแžฝแž›แž”แŸ’แžšแžพแž—แŸ’แž›แžถแž˜แŸ—แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž€แžถแžšแž แŸ… API แžŠแžพแž˜แŸ’แž”แžธแž”แž„แŸ’แž แžถแž‰แž–แŸแžแŸŒแž˜แžถแž“แž•แŸ’แžŸแŸแž„แŸ—แž‚แŸ’แž“แžถแžขแžถแžŸแŸ’แžšแŸแž™แž›แžพแž›แŸแžแž€แžผแžŠแž†แŸ’แž›แžพแž™แžแž”แŸ”

if api_ver.success: 
    print(api_versions.data) 
else: 
    print(api_versions.err_message) 

แž€แžผแžŠแžŸแŸ’แžแžถแž“แž—แžถแž–

แžแŸ’แžšแžกแž”แŸ‹แž›แŸแžแž€แžผแžŠแž†แŸ’แž›แžพแž™แžแž”แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž€แžถแžšแž แŸ… API แžแŸ’แžšแžผแžœแž”แžถแž“แž’แŸ’แžœแžพแžกแžพแž„แŸ”

In [62]: api_versions.status_code                                               
Out[62]: 400

แž›แŸแžแž€แžผแžŠแž†แŸ’แž›แžพแž™แžแž”แžŠแŸ‚แž›แžขแžถแž…แž’แŸ’แžœแžพแž”แžถแž“แŸ– 200,400,401,403,404,409,500,501.

set_success_status

แž€แŸ’แž“แžปแž„แž€แžšแžŽแžธแž“แŸแŸ‡ แžœแžถแžขแžถแž…แž…แžถแŸ†แž”แžถแž…แŸ‹แž€แŸ’แž“แžปแž„แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžแž˜แŸ’แž›แŸƒแž“แŸƒแžŸแŸ’แžแžถแž“แž—แžถแž–แž‡แŸ„แž‚แž‡แŸแž™แŸ” แžแžถแž˜แž”แž…แŸ’แž…แŸแž€แž‘แŸแžŸ แžขแŸ’แž“แž€แžขแžถแž…แžŠแžถแž€แŸ‹แžขแŸ’แžœแžธแž€แŸแž”แžถแž“ แžŸแžผแž˜แŸ’แž”แžธแžแŸ‚แžแŸ’แžŸแŸ‚แž’แž˜แŸ’แž˜แžแžถแž€แŸแžŠแŸ„แž™แŸ” แž”แŸ‰แžปแž“แŸ’แžแŸ‚แžงแž‘แžถแž แžšแžŽแŸแž‡แžถแž€แŸ‹แžŸแŸ’แžแŸ‚แž„แž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ†แžŽแžแŸ‹แžกแžพแž„แžœแžทแž‰แž“แžผแžœแž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž“แŸแŸ‡แž‘แŸ…แž‡แžถ False แž€แŸ’แžšแŸ„แž˜แž›แž€แŸ’แžแžแžŽแŸ’แžŒแž˜แžฝแž™แž…แŸ†แž“แžฝแž“แžŠแŸ‚แž›แž—แŸ’แž‡แžถแž”แŸ‹แž˜แž€แž‡แžถแž˜แžฝแž™แŸ” แžแžถแž„แž€แŸ’แžšแŸ„แž˜แž“แŸแŸ‡ แžŸแžผแž˜แž™แž€แž…แžทแžแŸ’แžแž‘แžปแž€แžŠแžถแž€แŸ‹แž›แžพแžงแž‘แžถแž แžšแžŽแŸ แž“แŸ…แž–แŸแž›แžŠแŸ‚แž›แž˜แžถแž“แž€แžทแž…แŸ’แž…แž€แžถแžšแžŠแŸ‚แž›แž€แŸ†แž–แžปแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž“แŸ…แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž™แžพแž„แž“แžนแž„แž–แžทแž…แžถแžšแžŽแžถแžŸแŸ†แžŽแžพแž“แŸแŸ‡แž˜แžทแž“แž‡แŸ„แž‚แž‡แŸแž™ (แž™แžพแž„แž“แžนแž„แž€แŸ†แžŽแžแŸ‹แžขแžแŸแžšแž‡แŸ„แž‚แž‡แŸแž™แž‘แŸ…แž‡แžถ Falseแž‘แŸ„แŸ‡แž”แžธแž‡แžถแž€แžถแžšแž–แžทแžแžŠแŸ‚แž›แžแžถแž€แžถแžšแž แŸ… API แž‘แž‘แžฝแž›แž”แžถแž“แž‡แŸ„แž‚แž‡แŸแž™แž แžพแž™แž”แžถแž“แžแŸ’แžšแžกแž”แŸ‹แž›แŸแžแž€แžผแžŠ 200) แŸ”

for task in task_result.data["tasks"]:
    if task["status"] == "failed" or task["status"] == "partially succeeded":
        task_result.set_success_status(False)
        break

แž€แžถแžšแž†แŸ’แž›แžพแž™แžแž” ()

แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžšแž†แŸ’แž›แžพแž™แžแž”แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž˜แžพแž›แžœแž…แž“แžถแž“แžปแž€แŸ’แžšแž˜แž‡แžถแž˜แžฝแž™แž›แŸแžแž€แžผแžŠแž†แŸ’แž›แžพแž™แžแž” (status_code) แž“แžทแž„แžแžฝแž€แžถแžšแž†แŸ’แž›แžพแž™แžแž” (แžแžฝ)แŸ”

In [94]: api_versions.response()                                                
Out[94]: 
{'status_code': 200,
 'data': {'current-version': '1.6',
  'supported-versions': ['1', '1.1', '1.2', '1.3', '1.4', '1.5', '1.6']}}

data subfolder

แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž˜แžพแž›แžƒแžพแž‰แžแŸ‚แžแžฝแž“แŸƒแž€แžถแžšแž†แŸ’แž›แžพแž™แžแž” (แžšแžถแž„แž€แžถแž™) แžŠแŸ„แž™แž‚แŸ’แž˜แžถแž“แž–แŸแžแŸŒแž˜แžถแž“แžŠแŸ‚แž›แž˜แžทแž“แž…แžถแŸ†แž”แžถแž…แŸ‹แŸ”

In [93]: api_versions.data                                                      
Out[93]: 
{'current-version': '1.6',
 'supported-versions': ['1', '1.1', '1.2', '1.3', '1.4', '1.5', '1.6']}

error_message

แž–แŸแžแŸŒแž˜แžถแž“แž“แŸแŸ‡แžขแžถแž…แž”แŸ’แžšแžพแž”แžถแž“แžแŸ‚แž“แŸ…แž–แŸแž›แžŠแŸ‚แž›แž˜แžถแž“แž€แŸ†แž แžปแžŸแž€แžพแžแžกแžพแž„แžแžŽแŸˆแž–แŸแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŸแŸ†แžŽแžพ API (แž›แŸแžแž€แžผแžŠแž†แŸ’แž›แžพแž™แžแž” แž˜แžทแž“แž˜แžถแž“ แŸขแŸ แŸ )แŸ” แž›แž‘แŸ’แž’แž•แž›แžงแž‘แžถแž แžšแžŽแŸ

In [107]: api_versions.error_message                                            
Out[107]: 'code: generic_err_invalid_parameter_namenmessage: Unrecognized parameter [1]n'

แžงแž‘แžถแž แžšแžŽแŸแž˜แžถแž“แž”แŸ’แžšแž™แŸ„แž‡แž“แŸ

แžแžถแž„แž€แŸ’แžšแŸ„แž˜แž“แŸแŸ‡แž‚แžบแž‡แžถแžงแž‘แžถแž แžšแžŽแŸแžŠแŸ‚แž›แž”แŸ’แžšแžพแž€แžถแžšแž แŸ… API แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž“แŸ…แž€แŸ’แž“แžปแž„ Management API 1.6แŸ”

แž‡แžถแžŠแŸ†แž”แžผแž„ แžŸแžผแž˜แž€แŸ’แžšแžกแŸแž€แž˜แžพแž›แž–แžธแžšแž”แŸ€แž”แžŠแŸ‚แž›แž€แžถแžšแž แŸ…แž‘แžผแžšแžŸแŸแž–แŸ’แž‘แžŠแŸ†แžŽแžพแžšแž€แžถแžš แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž”แž“แŸ’แžแŸ‚แž˜ ะธ แž‡แžฝแžšแž”แž“แŸ’แžแŸ‚แž˜แžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“. แžงแž”แž˜แžถแžแžถแž™แžพแž„แžแŸ’แžšแžผแžœแž”แž„แŸ’แž€แžพแžแžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“ IP แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž“แŸƒแž”แžŽแŸ’แžแžถแž‰แžšแž„ 192.168.0.0/24 แžŠแŸ‚แž›แž‡แžถ octet แž…แžปแž„แž€แŸ’แžšแŸ„แž™แž‚แžบ 5 แž‡แžถแžœแžแŸ’แžแžปแž“แŸƒแž”แŸ’แžšแž—แŸแž‘แž˜แŸ‰แžถแžŸแŸŠแžธแž“ แž แžพแž™แžŸแžšแžŸแŸแžšแžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“ IP แž•แŸ’แžŸแŸแž„แž‘แŸ€แžแž‘แžถแŸ†แž„แžขแžŸแŸ‹แž‡แžถแžœแžแŸ’แžแžปแž“แŸƒแž”แŸ’แžšแž—แŸแž‘แž‡แžฝแžšแžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“แŸ” แž€แŸ’แž“แžปแž„แž€แžšแžŽแžธแž“แŸแŸ‡ แžŠแž€แžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“แž”แžŽแŸ’แžแžถแž‰แžšแž„ แž“แžทแž„แžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“แž•แŸ’แžŸแžถแž™แŸ”

แžŠแžผแž…แŸ’แž“แŸแŸ‡ แžแžถแž„แž€แŸ’แžšแŸ„แž˜แž“แŸแŸ‡แž‚แžบแž‡แžถแžŸแŸ’แž‚แŸ’แžšแžธแž”แžŠแŸ‚แž›แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž”แž‰แŸ’แž แžถแž“แŸแŸ‡ แž แžพแž™แž”แž„แŸ’แž€แžพแžแžœแžแŸ’แžแžป 50 แž“แŸƒแž”แŸ’แžšแž—แŸแž‘แž˜แŸ‰แžถแžŸแŸŠแžธแž“ แž“แžทแž„ 51 แžœแžแŸ’แžแžปแž“แŸƒแž”แŸ’แžšแž—แŸแž‘แž‡แžฝแžšแžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“แŸ” แžŠแžพแž˜แŸ’แž”แžธแžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž”แž‰แŸ’แž แžถ แž€แžถแžšแž แŸ… API 101 แžแŸ’แžšแžผแžœแž”แžถแž“แž‘แžถแž˜แž‘แžถแžš (แž˜แžทแž“แžšแžถแž”แŸ‹แž”แž‰แŸ’แž…แžผแž›แž€แžถแžšแž แŸ…แž…แŸแž‰แž…แžปแž„แž€แŸ’แžšแŸ„แž™)แŸ” แž•แž„แžŠแŸ‚แžš แžŠแŸ„แž™แž”แŸ’แžšแžพแž˜แŸ‰แžผแžŒแžปแž› timeit แž™แžพแž„แž‚แžŽแž“แžถแž–แŸแž›แžœแŸแž›แžถแžŠแŸ‚แž›แžœแžถแžแŸ’แžšแžผแžœแž€แžถแžšแžŠแžพแž˜แŸ’แž”แžธแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแžŸแŸ’แž‚แŸ’แžšแžธแž”แžšแž แžผแžแžŠแž›แŸ‹แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ„แŸ‡แž–แžปแž˜แŸ’แž–แž•แŸ’แžŸแžถแž™แŸ”

แžŸแŸ’แž‚แŸ’แžšแžธแž”แžŠแŸ„แž™แž”แŸ’แžšแžพ add-host แž“แžทแž„ add-address-range

import timeit
from cpapi import APIClient, APIClientArgs

start = timeit.default_timer()

first_ip = 1
last_ip = 4

client_args = APIClientArgs(server="192.168.47.240")

with APIClient(client_args) as client: 
     login = client.login_with_api_key('3TsbPJ8ZKjaJGvFyoFqHFA==')
     for ip in range(5,255,5):
         add_host = client.api_call("add-host", {"name" : f"h_192.168.0.{ip}", "ip-address": f'192.168.0.{ip}'})
     while last_ip < 255:
         add_range = client.api_call("add-address-range", {"name": f"r_192.168.0.{first_ip}-{last_ip}", "ip-address-first": f"192.168.0.{first_ip}", "ip-address-last": f"192.168.0.{last_ip}"})
         first_ip+=5
         last_ip+=5
     stop = timeit.default_timer() 
     publish = client.api_call("publish")
     
print(f'Time to execute batch request: {stop - start} seconds')

แž“แŸ…แž€แŸ’แž“แžปแž„แž”แžšแžทแž™แžถแž€แžถแžŸแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแžšแž”แžŸแŸ‹แžแŸ’แž‰แžปแŸ† แžŸแŸ’แž‚แŸ’แžšแžธแž”แž“แŸแŸ‡แžแŸ’แžšแžผแžœแž…แŸ†แžŽแžถแž™แž–แŸแž›แž–แžธ 30 แž‘แŸ… 50 แžœแžทแž“แžถแž‘แžธแžŠแžพแž˜แŸ’แž”แžธแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžท แžขแžถแžŸแŸ’แžšแŸแž™แž›แžพแž€แžถแžšแž•แŸ’แž‘แžปแž€แž“แŸ…แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แŸ”

แžฅแžกแžผแžœแž“แŸแŸ‡แžŸแžผแž˜แž˜แžพแž›แž–แžธแžšแž”แŸ€แž”แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž”แž‰แŸ’แž แžถแžŠแžผแž…แž‚แŸ’แž“แžถแžŠแŸ„แž™แž”แŸ’แžšแžพแž€แžถแžšแž แŸ… API add-objects-batchแž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž“แŸ…แž€แŸ’แž“แžปแž„ API แž€แŸ†แžŽแŸ‚ 1.6 แŸ” แž€แžถแžšแž แŸ…แž‘แžผแžšแžŸแž–แŸ’แž‘แž“แŸแŸ‡แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž”แž„แŸ’แž€แžพแžแžœแžแŸ’แžแžปแž‡แžถแž…แŸ’แžšแžพแž“แž€แŸ’แž“แžปแž„แž–แŸแž›แžแŸ‚แž˜แžฝแž™แž€แŸ’แž“แžปแž„แžŸแŸ†แžŽแžพ API แž˜แžฝแž™แŸ” แž›แžพแžŸแž–แžธแž“แŸแŸ‡แž‘แŸ…แž‘แŸ€แž แž‘แžถแŸ†แž„แž“แŸแŸ‡แžขแžถแž…แž‡แžถแžœแžแŸ’แžแžปแž“แŸƒแž”แŸ’แžšแž—แŸแž‘แž•แŸ’แžŸแŸแž„แŸ—แž‚แŸ’แž“แžถ (แžงแž‘แžถแž แžšแžŽแŸ แž˜แŸ‰แžถแžŸแŸŠแžธแž“ แž”แžŽแŸ’แžแžถแž‰แžšแž„ แž“แžทแž„แž‡แžฝแžšแžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“)แŸ” แžŠแžผแž…แŸ’แž“แŸแŸ‡แž—แžถแžšแž€แžทแž…แŸ’แž…แžšแž”แžŸแŸ‹แž™แžพแž„แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž“แŸ…แž€แŸ’แž“แžปแž„แž€แŸ’แžšแž”แžแŸแžŽแŸ’แžŒแž“แŸƒแž€แžถแžšแž แŸ… API แž˜แžฝแž™แŸ”

แžŸแŸ’แž‚แŸ’แžšแžธแž”แžŠแŸ„แž™แž”แŸ’แžšแžพ add-objects-batch

import timeit
from cpapi import APIClient, APIClientArgs

start = timeit.default_timer()

client_args = APIClientArgs(server="192.168.47.240")

objects_list_ip = []
objects_list_range = []

for ip in range(5,255,5):
    data = {"name": f'h_192.168.0.{ip}', "ip-address": f'192.168.0.{ip}'}
    objects_list_ip.append(data)
    
first_ip = 1
last_ip = 4


while last_ip < 255:
    data = {"name": f"r_192.168.0.{first_ip}-{last_ip}", "ip-address-first": f"192.168.0.{first_ip}", "ip-address-last": f"192.168.0.{last_ip}"}
    objects_list_range.append(data)
    first_ip+=5
    last_ip+=5

data_for_batch = {
  "objects" : [ {
    "type" : "host",
    "list" : objects_list_ip
}, {
    "type" : "address-range",
    "list" : objects_list_range
  }]
}


with APIClient(client_args) as client: 
     login = client.login_with_api_key('3TsbPJ8ZKjaJGvFyoFqHFA==')
     add_objects_batch = client.api_call("add-objects-batch", data_for_batch)
     stop = timeit.default_timer() 
     publish = client.api_call("publish")
     
print(f'Time to execute batch request: {stop - start} seconds')

แž แžพแž™แž€แžถแžšแžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŸแŸ’แž‚แŸ’แžšแžธแž”แž“แŸแŸ‡แž“แŸ…แž€แŸ’แž“แžปแž„แž”แžšแžทแž™แžถแž€แžถแžŸแž˜แž“แŸ’แž‘แžธแžšแž–แžทแžŸแŸ„แž’แž“แŸแžšแž”แžŸแŸ‹แžแŸ’แž‰แžปแŸ†แžแŸ’แžšแžผแžœแž…แŸ†แžŽแžถแž™แž–แŸแž›แž–แžธ 3 แž‘แŸ… 7 แžœแžทแž“แžถแž‘แžธ แžขแžถแžŸแŸ’แžšแŸแž™แž›แžพแž€แžถแžšแž•แŸ’แž‘แžปแž€แž“แŸ…แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แŸ” แž“แŸ„แŸ‡แž‚แžบแž‡แžถแž˜แž’แŸ’แž™แž˜แž“แŸ…แž›แžพแžœแžแŸ’แžแžป 101 API แž€แžถแžšแž แŸ…แž”แŸ’แžšแž—แŸแž‘แž”แžถแž…แŸ‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž›แžฟแž“แž‡แžถแž„ 10 แžŠแž„แŸ” แž“แŸ…แž›แžพแžœแžแŸ’แžแžปแž˜แžฝแž™แž…แŸ†แž“แžฝแž“แž’แŸ† แž—แžถแž–แžแžปแžŸแž‚แŸ’แž“แžถแž“แžนแž„แž€แžถแž“แŸ‹แžแŸ‚แž‚แžฝแžšแžขแŸ„แž™แž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแŸ”

แžฅแžกแžผแžœแž“แŸแŸ‡แžŸแžผแž˜แž˜แžพแž›แž–แžธแžšแž”แŸ€แž”แž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™ set-objects-batch. แžŠแŸ„แž™แž”แŸ’แžšแžพแž€แžถแžšแž แŸ… API แž“แŸแŸ‡ แž™แžพแž„แžขแžถแž…แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแžŽแžถแž˜แžฝแž™แŸ” แž…แžผแžšแž€แŸ†แžŽแžแŸ‹แž–แžถแž€แŸ‹แž€แžŽแŸ’แžแžถแž›แž‘แžธแž˜แžฝแž™แž“แŸƒแžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“แž–แžธแžงแž‘แžถแž แžšแžŽแŸแž˜แžปแž“ (แžšแž แžผแžแžŠแž›แŸ‹ .124 แž˜แŸ‰แžถแžŸแŸŠแžธแž“ แž“แžทแž„แž‡แžฝแžšแž•แž„แžŠแŸ‚แžš) แž‘แŸ…แž–แžŽแŸŒแžŸแŸŠแžธแžŽแžถแž“ แž แžพแž™แž€แŸ†แžŽแžแŸ‹แž–แžŽแŸŒแž€แžถแž‚แžธแž‘แŸ…แž–แžถแž€แŸ‹แž€แžŽแŸ’แžแžถแž›แž‘แžธแž–แžธแžšแž“แŸƒแžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“แŸ”

แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž–แžŽแŸŒแž“แŸƒแžœแžแŸ’แžแžปแžŠแŸ‚แž›แž”แžถแž“แž”แž„แŸ’แž€แžพแžแž€แŸ’แž“แžปแž„แžงแž‘แžถแž แžšแžŽแŸแž˜แžปแž“แŸ”

from cpapi import APIClient, APIClientArgs

client_args = APIClientArgs(server="192.168.47.240")

objects_list_ip_first = []
objects_list_range_first = []
objects_list_ip_second = []
objects_list_range_second = []

for ip in range(5,125,5):
    data = {"name": f'h_192.168.0.{ip}', "color": "sienna"}
    objects_list_ip_first.append(data)
    
for ip in range(125,255,5):
    data = {"name": f'h_192.168.0.{ip}', "color": "khaki"}
    objects_list_ip_second.append(data)
    
first_ip = 1
last_ip = 4
while last_ip < 125:
    data = {"name": f"r_192.168.0.{first_ip}-{last_ip}", "color": "sienna"}
    objects_list_range_first.append(data)
    first_ip+=5
    last_ip+=5
    
while last_ip < 255:
    data = {"name": f"r_192.168.0.{first_ip}-{last_ip}", "color": "khaki"}
    objects_list_range_second.append(data)
    first_ip+=5
    last_ip+=5

data_for_batch_first  = {
  "objects" : [ {
    "type" : "host",
    "list" : objects_list_ip_first
}, {
    "type" : "address-range",
    "list" : objects_list_range_first
  }]
}

data_for_batch_second  = {
  "objects" : [ {
    "type" : "host",
    "list" : objects_list_ip_second
}, {
    "type" : "address-range",
    "list" : objects_list_range_second
  }]
}

with APIClient(client_args) as client: 
     login = client.login_with_api_key('3TsbPJ8ZKjaJGvFyoFqHFA==') 
     set_objects_batch_first = client.api_call("set-objects-batch", data_for_batch_first)
     set_objects_batch_second = client.api_call("set-objects-batch", data_for_batch_second)
     publish = client.api_call("publish")

แžขแŸ’แž“แž€แžขแžถแž…แž›แžปแž”แžœแžแŸ’แžแžปแž‡แžถแž…แŸ’แžšแžพแž“แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž แŸ… API แž˜แžฝแž™แžŠแŸ„แž™แž”แŸ’แžšแžพ แž›แžปแž”-แžœแžแŸ’แžแžป-แž”แžถแž…แŸ‹. แžฅแžกแžผแžœแž“แŸแŸ‡แžŸแžผแž˜แž˜แžพแž›แžงแž‘แžถแž แžšแžŽแŸแž€แžผแžŠแžŠแŸ‚แž›แž›แžปแž”แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž‘แžถแŸ†แž„แžขแžŸแŸ‹แžŠแŸ‚แž›แž”แžถแž“แž”แž„แŸ’แž€แžพแžแž–แžธแž˜แžปแž“แžแžถแž˜แžšแž™แŸˆ add-objects-batch.

แž€แžถแžšแž›แžปแž”แžœแžแŸ’แžแžปแžŠแŸ„แž™แž”แŸ’แžšแžพแž›แžปแž”-แžœแžแŸ’แžแžป-แž”แžถแž…แŸ‹

from cpapi import APIClient, APIClientArgs

client_args = APIClientArgs(server="192.168.47.240")

objects_list_ip = []
objects_list_range = []

for ip in range(5,255,5):
    data = {"name": f'h_192.168.0.{ip}'}
    objects_list_ip.append(data)

first_ip = 1
last_ip = 4
while last_ip < 255:
    data = {"name": f"r_192.168.0.{first_ip}-{last_ip}"}
    objects_list_range.append(data)
    first_ip+=5
    last_ip+=5

data_for_batch = {
  "objects" : [ {
    "type" : "host",
    "list" : objects_list_ip
}, {
    "type" : "address-range",
    "list" : objects_list_range
  }]
}

with APIClient(client_args) as client: 
     login = client.login_with_api_key('3TsbPJ8ZKjaJGvFyoFqHFA==')
     delete_objects_batch = client.api_call("delete-objects-batch", data_for_batch)
     publish = client.api_call("publish")

print(delete_objects_batch.data)

แž˜แžปแžแž„แžถแžšแž‘แžถแŸ†แž„แžขแžŸแŸ‹แžŠแŸ‚แž›แž”แž„แŸ’แž แžถแž‰แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แžแŸ’แž˜แžธแž“แŸƒแž€แž˜แŸ’แž˜แžœแžทแž’แžธ Check Point แž‘แž‘แžฝแž›แž”แžถแž“แž€แžถแžšแž แŸ… API แž—แŸ’แž›แžถแž˜แŸ—แŸ” แžŠแžผแž…แŸ’แž“แŸแŸ‡แž“แŸ…แž€แŸ’แž“แžปแž„ R80.40 "แž›แž€แŸ’แžแžŽแŸˆแž–แžทแžŸแŸแžŸ" แžŠแžผแž…แž‡แžถแž€แžถแžšแžแŸ’แžšแž›แž”แŸ‹แž‘แŸ…แž€แžถแžšแž–แžทแž“แžทแžแŸ’แž™แžกแžพแž„แžœแžทแž‰ แž“แžทแž„ Smart Task แž”แžถแž“แž”แž„แŸ’แž แžถแž‰แžแŸ’แž›แžฝแž“ แž แžพแž™แž€แžถแžšแž แŸ… API แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž‚แŸ’แž“แžถแžแŸ’แžšแžผแžœแž”แžถแž“แžšแŸ€แž”แž…แŸ†แž—แŸ’แž›แžถแž˜แŸ—แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž–แžฝแž€แž‚แŸแŸ” แž›แžพแžŸแž–แžธแž“แŸแŸ‡ แž˜แžปแžแž„แžถแžšแž‘แžถแŸ†แž„แžขแžŸแŸ‹แž“แŸ…แž–แŸแž›แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž–แžธแž€แžปแž„แžŸแžผแž› Legacy แž‘แŸ…แž˜แžปแžแž„แžถแžšแž‚แŸ„แž›แž€แžถแžšแžŽแŸแž”แž„แŸ’แžšแžฝแž”แž”แž„แŸ’แžšแžฝแž˜ แž€แŸแž‘แž‘แžฝแž›แž”แžถแž“แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžš API แž•แž„แžŠแŸ‚แžšแŸ” แž‡แžถแžงแž‘แžถแž แžšแžŽแŸ แž€แžถแžšแžขแžถแž”แŸ‹แžŠแŸแžแžŠแŸ‚แž›แžšแž„แŸ‹แž…แžถแŸ†แž‡แžถแž™แžผแžšแž˜แž€แž แžพแž™แž“แŸ…แž€แŸ’แž“แžปแž„แž€แŸ†แžŽแŸ‚แž€แž˜แŸ’แž˜แžœแžทแž’แžธ R80.40 แž‚แžบแž‡แžถแž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž‘แžธแž“แŸƒแž‚แŸ„แž›แž€แžถแžšแžŽแŸแžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™ HTTPS แž–แžธแžšแž”แŸ€แž”แž…แžถแžŸแŸ‹แž‘แŸ…แžšแž”แŸ€แž”แž‚แŸ„แž›แž€แžถแžšแžŽแŸแž”แž„แŸ’แžšแžฝแž”แž”แž„แŸ’แžšแžฝแž˜ แž แžพแž™แž˜แžปแžแž„แžถแžšแž“แŸแŸ‡แž”แžถแž“แž‘แž‘แžฝแž›แž€แžถแžšแž แŸ… API แž—แŸ’แž›แžถแž˜แŸ—แŸ” แž“แŸแŸ‡แž‚แžบแž‡แžถแžงแž‘แžถแž แžšแžŽแŸแž“แŸƒแž€แžผแžŠแžŠแŸ‚แž›แž”แž“แŸ’แžแŸ‚แž˜แž…แŸ’แž”แžถแž”แŸ‹แž˜แžฝแž™แž‘แŸ…แž‘แžธแžแžถแŸ†แž„แž€แŸ†แž–แžผแž›แž“แŸƒแž‚แŸ„แž›แž“แž™แŸ„แž”แžถแž™แžขแž’แžทแž€แžถแžšแž€แžทแž…แŸ’แž… HTTPS แžŠแŸ‚แž›แž˜แžทแž“แžšแžถแž”แŸ‹แž”แž‰แŸ’แž…แžผแž› 3 แž”แŸ’แžšแž—แŸแž‘แž–แžธแž€แžถแžšแžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™ (แžŸแžปแžแž—แžถแž– แž แžทแžšแž‰แŸ’แž‰แžœแžแŸ’แžแžป แžŸแŸแžœแžถแžšแžŠแŸ’แž‹แžถแž—แžทแž”แžถแž›) แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž แžถแž˜แžƒแžถแžแŸ‹แž˜แžทแž“แžฑแŸ’แž™แž’แŸ’แžœแžพแžขแž’แžทแž€แžถแžšแž€แžทแž…แŸ’แž…แžŸแŸ’แžšแž”แžแžถแž˜แž…แŸ’แž”แžถแž”แŸ‹แž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแž‘แŸแžŸแž˜แžฝแž™แž…แŸ†แž“แžฝแž“แŸ”

แž”แž“แŸ’แžแŸ‚แž˜แž…แŸ’แž”แžถแž”แŸ‹แž‘แŸ…แž‚แŸ„แž›แž€แžถแžšแžŽแŸแžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™ HTTPS

from cpapi import APIClient, APIClientArgs

client_args = APIClientArgs(server="192.168.47.240")

data = {
  "layer" : "Default Layer",
  "position" : "top",
  "name" : "Legal Requirements",
  "action": "bypass",
  "site-category": ["Health", "Government / Military", "Financial Services"]
}

with APIClient(client_args) as client: 
     login = client.login_with_api_key('3TsbPJ8ZKjaJGvFyoFqHFA==')
     add_https_rule = client.api_call("add-https-rule", data)
     publish = client.api_call("publish")

แž€แŸ†แž–แžปแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŸแŸ’แž‚แŸ’แžšแžธแž” Python แž“แŸ…แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž…แŸ†แžŽแžปแž…แžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™

แžขแŸ’แžœแžธแž‚แŸ’แžšแž”แŸ‹แž™แŸ‰แžถแž„แž‚แžบแžŠแžผแž…แž‚แŸ’แž“แžถแŸ” README.md แž˜แžถแž“แž–แŸแžแŸŒแž˜แžถแž“แžขแŸ†แž–แžธแžšแž”แŸ€แž”แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŸแŸ’แž‚แŸ’แžšแžธแž” Python แžŠแŸ„แž™แž•แŸ’แž‘แžถแž›แŸ‹แž–แžธแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž”แž‰แŸ’แž‡แžถแŸ” แžœแžถแžขแžถแž…แž˜แžถแž“แž—แžถแž–แž„แžถแž™แžŸแŸ’แžšแžฝแž›แž“แŸ…แž–แŸแž›แžŠแŸ‚แž›แžขแŸ’แž“แž€แž˜แžทแž“แžขแžถแž…แž—แŸ’แž‡แžถแž”แŸ‹แž‘แŸ…แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ API แž–แžธแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž•แŸ’แžŸแŸแž„แž‘แŸ€แžแŸ” แžแŸ’แž‰แžปแŸ†แž”แžถแž“แžแžแžœแžธแžŠแŸแžขแžผแžšแž™แŸˆแž–แŸแž›แž”แŸ’แžšแžถแŸ†แž˜แžฝแž™แž“แžถแž‘แžธ แžŠแŸ‚แž›แžแŸ’แž‰แžปแŸ†แž˜แžพแž›แž‘แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแžŠแŸ†แžกแžพแž„แž˜แŸ‰แžผแžŒแžปแž› cpapi แž“แžทแž„แž›แž€แŸ’แžแžŽแŸˆแž–แžทแžŸแŸแžŸแž“แŸƒแžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŸแŸ’แž‚แŸ’แžšแžธแž” Python แž“แŸ…แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž”แž‰แŸ’แž‡แžถแŸ” แž‡แžถแžงแž‘แžถแž แžšแžŽแŸ แžŸแŸ’แž‚แŸ’แžšแžธแž”แž˜แžฝแž™แžแŸ’แžšแžผแžœแž”แžถแž“แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŠแŸ‚แž›แž’แŸ’แžœแžพแžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แž…แŸ’แžšแž€แž•แŸ’แž›แžผแžœแžแŸ’แž˜แžธแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžทแž…แŸ’แž…แž€แžถแžšแžŠแžผแž…แž‡แžถ แžŸแžœแž“แž€แž˜แŸ’แž˜แž”แžŽแŸ’แžแžถแž‰แŸ” แž€แžถแžšแžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™แžŸแžปแžœแžแŸ’แžแžทแž—แžถแž–. แž€แŸ’แž“แžปแž„แž…แŸ†แžŽแŸ„แž˜แž›แž€แŸ’แžแžŽแŸˆแž–แžทแžŸแŸแžŸแžŠแŸ‚แž›แžแŸ’แž‰แžปแŸ†แžแŸ’แžšแžผแžœแžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แŸ– แž˜แžปแžแž„แžถแžšแž˜แžทแž“แž‘แžถแž“แŸ‹แž”แžถแž“แž”แž„แŸ’แž แžถแž‰แžแŸ’แž›แžฝแž“แž“แŸ…แž€แŸ’แž“แžปแž„ Python 2.7 แž“แŸ…แžกแžพแž™แž‘แŸ แž€แžถแžšแž”แž‰แŸ’แž…แžผแž›แžŠแžผแž…แŸ’แž“แŸแŸ‡ แžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž–แŸแžแŸŒแž˜แžถแž“แžŠแŸ‚แž›แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž”แž‰แŸ’แž…แžผแž› แž˜แžปแžแž„แžถแžšแž˜แžฝแž™แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ raw_แž”แž‰แŸ’แž…แžผแž›. แž”แžพแž˜แžทแž“แžŠแžผแž…แŸ’แž“แŸแŸ‡แž‘แŸ แž€แžผแžŠแž‚แžบแžŠแžผแž…แž‚แŸ’แž“แžถแž“แžนแž„แž€แžถแžšแž”แžพแž€แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž–แžธแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž•แŸ’แžŸแŸแž„แž‘แŸ€แžแžŠแŸ‚แžš แž‚แŸ’แžšแžถแž“แŸ‹แžแŸ‚แžœแžถแž„แžถแž™แžŸแŸ’แžšแžฝแž›แž”แŸ’แžšแžพแž˜แžปแžแž„แžถแžšแž‡แžถแž„ login_as_rootแžŠแžผแž…แŸ’แž“แŸแŸ‡แž‡แžถแž€แžถแžšแž˜แžทแž“แž”แž‰แŸ’แž‡แžถแž€แŸ‹แžˆแŸ’แž˜แŸ„แŸ‡แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹ แž“แžทแž„แžขแžถแžŸแž™แžŠแŸ’แž‹แžถแž“ IP แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แž•แŸ’แž‘แžถแž›แŸ‹แžšแž”แžŸแŸ‹แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž˜แŸ’แžแž„แž‘แŸ€แžแŸ”

แž›แŸแž„แžœแžธแžŠแŸแžขแžผ

แžŸแŸ’แž‚แŸ’แžšแžธแž”แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžŠแŸ†แžกแžพแž„แžšแž แŸแžŸแž“แŸƒแž€แžถแžšแžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™แžŸแžปแžœแžแŸ’แžแžทแž—แžถแž–

from __future__ import print_function
import getpass
import sys, os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from cpapi import APIClient, APIClientArgs

def main():
    with APIClient() as client:
       # if client.check_fingerprint() is False:
       #     print("Could not get the server's fingerprint - Check connectivity with the server.")
       #     exit(1)
        login_res = client.login_as_root()

        if login_res.success is False:
            print("Login failed:n{}".format(login_res.error_message))
            exit(1)

        gw_name = raw_input("Enter the gateway name:")
        gw_ip = raw_input("Enter the gateway IP address:")
        if sys.stdin.isatty():
            sic = getpass.getpass("Enter one-time password for the gateway(SIC): ")
        else:
            print("Attention! Your password will be shown on the screen!")
            sic = raw_input("Enter one-time password for the gateway(SIC): ")
        version = raw_input("Enter the gateway version(like RXX.YY):")
        add_gw = client.api_call("add-simple-gateway", {'name' : gw_name, 'ipv4-address' : gw_ip, 'one-time-password' : sic, 'version': version.capitalize(), 'application-control' : 'true', 'url-filtering' : 'true', 'ips' : 'true', 'anti-bot' : 'true', 'anti-virus' : 'true', 'threat-emulation' : 'true'})
        if add_gw.success and add_gw.data['sic-state'] != "communicating":
            print("Secure connection with the gateway hasn't established!")
            exit(1)
        elif add_gw.success:
            print("The gateway was added successfully.")
            gw_uid = add_gw.data['uid']
            gw_name = add_gw.data['name']
        else:
            print("Failed to add the gateway - {}".format(add_gw.error_message))
            exit(1)

        change_policy = client.api_call("set-access-layer", {"name" : "Network", "applications-and-url-filtering": "true", "content-awareness": "true"})
        if change_policy.success:
            print("The policy has been changed successfully")
        else:
            print("Failed to change the policy- {}".format(change_policy.error_message))
        change_rule = client.api_call("set-access-rule", {"name" : "Cleanup rule", "layer" : "Network", "action": "Accept", "track": {"type": "Detailed Log", "accounting": "true"}})
        if change_rule.success:
            print("The cleanup rule has been changed successfully")
        else:
            print("Failed to change the cleanup rule- {}".format(change_rule.error_message))

        # publish the result
        publish_res = client.api_call("publish", {})
        if publish_res.success:
            print("The changes were published successfully.")
        else:
                print("Failed to publish the changes - {}".format(install_tp_policy.error_message))

        install_access_policy = client.api_call("install-policy", {"policy-package" : "Standard", "access" : 'true',  "threat-prevention" : 'false', "targets" : gw_uid})
        if install_access_policy.success:
            print("The access policy has been installed")
        else:
                print("Failed to install access policy - {}".format(install_tp_policy.error_message))

        install_tp_policy = client.api_call("install-policy", {"policy-package" : "Standard", "access" : 'false',  "threat-prevention" : 'true', "targets" : gw_uid})
        if install_tp_policy.success:
            print("The threat prevention policy has been installed")
        else:
            print("Failed to install threat prevention policy - {}".format(install_tp_policy.error_message))
        
        # add passwords and passphrases to dictionary
        with open('additional_pass.conf') as f:
            line_num = 0
            for line in f:
                line_num += 1
                add_password_dictionary = client.api_call("run-script", {"script-name" : "Add passwords and passphrases", "script" : "printf "{}" >> $FWDIR/conf/additional_pass.conf".format(line), "targets" : gw_name})
                if add_password_dictionary.success:
                    print("The password dictionary line {} was added successfully".format(line_num))
                else:
                    print("Failed to add the dictionary - {}".format(add_password_dictionary.error_message))

main()

แžฏแž€แžŸแžถแžšแžงแž‘แžถแž แžšแžŽแŸแžŠแŸ‚แž›แž˜แžถแž“แžœแž…แž“แžถแž“แžปแž€แŸ’แžšแž˜แž–แžถแž€แŸ’แž™แžŸแž˜แŸ’แž„แžถแžแŸ‹แž”แž“แŸ’แžแŸ‚แž˜_pass.conf
{
"passwords" : ["malware","malicious","infected","Infected"],
"phrases" : ["password","Password","Pass","pass","codigo","key","pwd","ะฟะฐั€ะพะปัŒ","ะŸะฐั€ะพะปัŒ","ะšะปัŽั‡","ะบะปัŽั‡","ัˆะธั„ั€","ะจะธั„ั€"]
}

แžŸแŸแž…แž€แŸ’แžแžธแžŸแž“แŸ’แž“แžทแžŠแŸ’แž‹แžถแž“

แžขแžแŸ’แžแž”แž‘แž“แŸแŸ‡แž–แžทแž“แžทแžแŸ’แž™แžแŸ‚แž›แž‘แŸ’แž’แž—แžถแž–แž‡แžถแž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž“แŸƒแž€แžถแžšแž„แžถแžšแž”แŸ‰แžปแžŽแŸ’แžŽแŸ„แŸ‡แŸ” แž–แžŸแŸ‹แžแŸ’แž›แžถแž“แŸ‹ SDK แž“แžทแž„แž˜แŸ‰แžผแžŒแžปแž› cpapi(แžŠแžผแž…แžŠแŸ‚แž›แžขแŸ’แž“แž€แž”แŸ’แžšแž แŸ‚แž›แž‡แžถแž”แžถแž“แž‘แžถแž™ แž‘แžถแŸ†แž„แž“แŸแŸ‡แž–แžทแžแž‡แžถแž˜แžถแž“แž“แŸแž™แžŠแžผแž…แž‚แŸ’แž“แžถ) แž แžพแž™แžŠแŸ„แž™แžŸแžทแž€แŸ’แžŸแžถแž€แžผแžŠแž“แŸ…แž€แŸ’แž“แžปแž„แž˜แŸ‰แžผแžŒแžปแž›แž“แŸแŸ‡ แžขแŸ’แž“แž€แž“แžนแž„แžšแž€แžƒแžพแž‰แž›แž‘แŸ’แž’แž—แžถแž–แž€แžถแž“แŸ‹แžแŸ‚แž…แŸ’แžšแžพแž“แž€แŸ’แž“แžปแž„แž€แžถแžšแž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™แžœแžถแŸ” แžœแžถแžขแžถแž…แž‘แŸ…แžšแžฝแž…แžŠแŸ‚แž›แžขแŸ’แž“แž€แž…แž„แŸ‹แž”แž“แŸ’แžแŸ‚แž˜แžœแžถแž‡แžถแž˜แžฝแž™แž“แžนแž„แžแŸ’แž“แžถแž€แŸ‹ แž˜แžปแžแž„แžถแžš แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แž แž“แžทแž„แžขแžแŸแžšแž•แŸ’แž‘แžถแž›แŸ‹แžแŸ’แž›แžฝแž“แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แŸ” แžขแŸ’แž“แž€แžแŸ‚แž„แžแŸ‚แžขแžถแž…แž…แŸ‚แž€แžšแŸ†แž›แŸ‚แž€แž€แžถแžšแž„แžถแžšแžšแž”แžŸแŸ‹แžขแŸ’แž“แž€ แž“แžทแž„แž˜แžพแž›แžŸแŸ’แž‚แŸ’แžšแžธแž”แž•แŸ’แžŸแŸแž„แž‘แŸ€แžแžŸแž˜แŸ’แžšแžถแž”แŸ‹ Check Point แž“แŸ…แž€แŸ’แž“แžปแž„แž•แŸ’แž“แŸ‚แž€ CodeHub แž“แŸ…แž€แŸ’แž“แžปแž„แžŸแž แž‚แž˜แž“แŸ CheckMatesแžŠแŸ‚แž›แž”แŸ’แžšแž˜แžผแž›แž•แŸ’แžแžปแŸ†แž‘แžถแŸ†แž„แžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž•แž›แžทแžแž•แž› แž“แžทแž„แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แŸ”

แžšแžธแž€แžšแžถแž™แž€แŸ’แž“แžปแž„แž€แžถแžšแžŸแžšแžŸแŸแžšแž€แžผแžŠ แž“แžทแž„แžขแžšแž‚แžปแžŽแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžขแžถแž“แžŠแž›แŸ‹แž…แž”แŸ‹!

แž”แŸ’แžšแž—แž–: www.habr.com

แž‘แžทแž‰แž€แžถแžšแž”แž„แŸ’แž แŸ„แŸ‡แžŠแŸ‚แž›แžขแžถแž…แž‘แžปแž€แž…แžทแžแŸ’แžแž”แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แž˜แžถแž“แž€แžถแžšแž€แžถแžšแž–แžถแžš DDoS, แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ VPS VDS ๐Ÿ”ฅ แž‘แžทแž‰แžŸแŸแžœแžถแž”แž„แŸ’แž แŸ„แŸ‡แž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แžขแžถแž…แž‘แžปแž€แž…แžทแžแŸ’แžแž”แžถแž“แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž€แžถแžšแž–แžถแžš DDoS แž“แžทแž„แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ VPS VDS | ProHoster