use the net-snmp snmpwalk command, and add the command option: "-Dsnmp_sess_open" and do a snmpget v3 with your credentials, and you should get something like this:
snmp_sess_open: probe found engineID: 80001f888016fb784553d902ac
.1.3.6.1.4.1.3432.8.1.1.7.0 = Gauge32: 0
The agent's engineID is right there: 80001f888016fb784553d902ac
You can also try "-Dlcd_get_enginetime", which gives you local engineID
On the other note, I have written the SNMP trap receiver that can detect the incoming engineID automatically. Check it out at github: https://github.com/tiebingzhang/WapSNMP
On a local Linux machine running snmpd, you can find out its engine ID by:
cat /var/net-snmp/snmpd.conf
If you have any SNMP v3 user configured, you should see one or more lines like this:
usmUser 1 3 0x80001f888016fb784553d902ac 0x68636d2e736e6d70763300 0x......
EngineID is the 4th element: 0x80001f888016fb784553d902ac