Your IP : 216.73.216.247


Current Path : /opt/cpanel/
Upload File :
Current File : //opt/cpanel/test5.py

import socket
import ssl
import struct
import uuid

# ZARC EPP connection details
EPP_HOST = "epp.zarc.net.za"
EPP_PORT = 700
EPP_USER = "enetworks"           # replace with your EPP username
EPP_PASS = "36ancerg9a2"         # replace with your EPP password

# Build EPP login XML using correct <svcs> tag
def build_login_xml():
    clTRID = str(uuid.uuid4())
    return f"""<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <login>
      <clID>{EPP_USER}</clID>
      <pw>{EPP_PASS}</pw>
      <options>
        <version>1.0</version>
        <lang>en</lang>
      </options>
      <svcs>
        <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
        <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
      </svcs>
    </login>
    <clTRID>{clTRID}</clTRID>
  </command>
</epp>"""

# Add 4-byte length prefix (required by EPP)
def frame(xml_string):
    xml_bytes = xml_string.encode('utf-8')
    return struct.pack("!I", len(xml_bytes) + 4) + xml_bytes

# Read EPP response from server
def read_response(sock):
    header = sock.recv(4)
    if not header:
        return None
    total_length = struct.unpack("!I", header)[0]
    data = sock.recv(total_length - 4)
    return data.decode('utf-8')

# Connect and authenticate
def main():
    print("[*] Connecting to ZARC EPP server...")
    context = ssl.create_default_context()
    with socket.create_connection((EPP_HOST, EPP_PORT)) as tcp_sock:
        with context.wrap_socket(tcp_sock, server_hostname=EPP_HOST) as epp_sock:
            print("[+] Connected over TLS.")

            # 1. Read server greeting
            greeting = read_response(epp_sock)
            print("[i] Server greeting:\n", greeting)

            # 2. Send login command
            login_xml = build_login_xml()
            epp_sock.sendall(frame(login_xml))
            print("[*] Sent login XML.")

            # 3. Read login response
            response = read_response(epp_sock)
            print("[+] Login response:\n", response)

if __name__ == "__main__":
    main()