Python provides raw socket programming via `socket.socket(socket.AF_INET, socket.SOCK_RAW)` and higher-level packet manipulation using Scapy:
python
from scapy.all import IP, TCP, sr1
# Craft a SYN packet for port scanning
pkt = IP(dst="192.168.1.1")/TCP(dport=80, flags="S")
resp = sr1(pkt, timeout=2)
if resp and resp.haslayer(TCP) and resp.getlayer(TCP).flags == 0x12: # SYN-ACK
print("Port is open")