import requests import argparse def send_soap_request(ip, port): url = f"http://{ip}:{port}/control/WANIPConnection" headers = { "Content-Type": "text/xml", "SOAPAction": "urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping" } data = ''' hello ''' try: response = requests.post(url, headers=headers, data=data, timeout=10) print(f"Status Code: {response.status_code}") print("Response Body:") print(response.text) except requests.RequestException as e: print(f"[!] Request failed: {e}") def main(): parser = argparse.ArgumentParser(description="Send SOAP AddPortMapping request to target IP") parser.add_argument("ip", help="Target IP address (e.g., 10.21.42.33)") parser.add_argument("-p", "--port", type=int, default=5431, help="Target port (default: 5431)") args = parser.parse_args() send_soap_request(args.ip, args.port) if __name__ == "__main__": main()