Absolutely - a network data stream is a data stream like any other. I have done an experiment where I made an FPGA reply to pings from a 100Mbps port.
There's a lot more stuff to consider, though, since it's not done for you. Starting from the physical interface to the PHY chip. I gather you have an IP block that handles that, but you still need to consider the physical interface to the IP block.
Then you need to identify the start and end of packets. Your IP block probably has signals like "start of packet" and "end of packet" so this is done for you.
Then you need to process the contents of packets. If you're using IP and Ethernet, each packet that you care about will have an Ethernet header followed by an IP header. However you also have to handle ARP packets which have an Ethernet header followed by an ARP header. You can start by making the FPGA recognize ARP request packets and then sending ARP replies. Then if you try to ping the FPGA's IP address, on Wireshark you should see the computer send an ARP request, receive an ARP reply, and send a ping request. Both ARP packets are fairly simple fixed-layout formats. If you can make this work, it proves that you have the ability to send and receive packets.
Oh, you do need an IP address and a MAC address. I suggest you start by just picking some reasonable ones and hard-coding them.
If your FPGA just replies to requests it gets, and doesn't send packets by itself, then you don't need "idiot ARP" as another answer suggested - you can just copy the MAC address from the request packet. If you can hardcode the IP address you don't need BOOTP or DHCP. This makes your FPGA design simpler.
For the actual protocol, I suggest using UDP, because TCP is rather complicated and tricky to get right. You can write a block that takes this stream of packet data from the network, replies to ARPs, and recognizes UDP packets and then puts the data from the UDP packet into a FIFO, where you can process it however you like. UDP on a local network isn't really unreliable, if the network isn't overloaded, so if losing the occasional block of data isn't the end of the world, you probably don't need a system to re-send missed packets.