Der er ikke noget, der decideret kan kaldes en port når du taler om ethernet controlleren. Som du jo nok ved fra dit kendskab til OSI modellen og TCP/IP modellen samt IEEE 802.3 standarden, så kan du nok ikke styre data på et lavere niveau end en Ethernet frame.
En firewall er også et meget bredt begreb. Hvis du gerne vil lave en pakkefilter, er det nok noget, der kan lade sig gøre inden for rimelig tid. Hvis du skal lave en application-level firewall, kræver det nok mere research og kodning end du umiddelbart vil have tid til i forbindelse med dit projekt.
For at lave en pakkefilter (som Zonealarm eller Nortons Internet Security) kan du nøjes med at kigge på netværkslaget og transportlaget:
1) Du sørger for at alle TCP-sessioner KUN kan etableres ud gennem firewall (ingen TCP-pakker med med en SYN og uden ACK kommer igennem udefra)
2) Du laver undtagelser fra ovenstående, hvor der tillades etablering af TCP-forbindelse på bestemte porte.
Egentlig synes jeg at du er lidt ude på at genopfinde hjulet hvis du vil lave sådan noget, men det kan naturligvis diskuteres. Måske kan du lave noget opfindsomt, hvem ved...
Anyway, til det med adgang til netværkskortet - der er noget, der hedder libpcap (packet capture library), som vist nok kan til både windows og UNIX. Tjek evt. dette link:
http://www.cet.nau.edu/~mc8/Socket/Tutorials/section1.htmlHeld og lykke.