Registry / http-networking / doipclient

doipclient

JSON →
library1.2.1pypypi✓ verified 89d ago

A Python implementation of a client for ISO-13400-2 (Diagnostic over IP). It provides a DoIPClient class for connecting to automotive ECUs over Ethernet, supporting routing activation, diagnostic message sending, and vehicle discovery. Version 1.1.8 is the latest stable release, with active maintenance.

pip install doipclient
INSTALL
IMPORT
SIG · DOIPCLIENT
D
doipclient
http-networkingpythonv1.2.1
Install
1.5s avg
Import
59ms
Disk
16MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.9–3.13
musl
3.9–3.13
Install & Compatibility
Where this runs
tested against v1.2.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.062s · 18MB
glibc
py 3.10–3.95 runs
installs and imports cleanly · install 1.5s · import 0.056s · 18MB
16MB installed
● package 16MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

DoIPClient
✓ from doipclient import DoIPClient
✗ from doip.client import DoIPClient
Common mistake due to package name misleading
DoIPConnectionException
✓ from doipclient.connectors import DoIPConnectionException
✗ from doipclient import DoIPConnectionException
DoIPConnectionException is in connectors module

Basic connection to a DoIP ECU and sending a diagnostic request.

from doipclient import DoIPClient client = DoIPClient('192.168.0.10', 13400) client.send_diagnostic(b'\x22\xf1\x90') # Example UDS request
Debug
Known issues
breakingIn v1.1.3, RoutingActivationResponse.ResponseCode changed: DeniedRequiresTLS enum value corrected from 0x6 to 0x7, and 0x6 now maps to DeniedUnsupportedActivationType.
fix
Update code that checks for response codes using numeric values or enum names.
affects: >=1.1.3
gotchaThe use_secure parameter in the DoIPClient constructor also accepts an ssl.SSLContext. When passed True, a default context is used. When passed an SSLContext, it uses that context directly.
fix
If you need custom TLS, pass an SSLContext instead of True.
affects: >=1.0.9
gotchaThe get_entity() method for ECU discovery only works over IPv4 broadcast, not multicast. It may not detect all ECUs in complex networks.
fix
Use await_vehicle_announcement() for broader discovery.
affects: >=1.1.0
deprecatedThe 'timeout' parameter in the constructor may be deprecated in favor of a per-call timeout. Check documentation for current status.
fix
Refer to the latest docs; use per-method timeouts if available.
affects: ?
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'doipclient'
Package not installed or installed in wrong environment.
fix
pip install doipclient
doipclient.connectors.DoIPConnectionException: Connection refused
ECU not reachable at the given IP/port or not accepting connections.
fix
Verify ECU IP and port (default 13400). Check network connectivity and firewall.
ImportError: cannot import name 'DoIPConnectionException' from 'doipclient'
Incorrect import path.
fix
from doipclient.connectors import DoIPConnectionException
Upgrade
Version history
1.2.1latest on PyPI · released May 13, 2026
Audit
Dependencies
udsoncanoptionalOptional dependency for UDS diagnostics over DoIP
Agent activity
34 hits · last 30 days
node
32
OpenAI (training)
1
Resources
doipclient — pip install doipclient · libregistry