I prefer using the OS provided tools and not some other third party tools because just to get the NIC driver and firmware version I don't want to go through all browsing, download, getting over my firewall, copying to my blade (as in office environment generally we don't have internet access to our Linux blades) when we already have bunch of OS provided tools which can be used for this purpose.
Below command can be used on both SuSE and RHEL which has two different sections with separate firmware and driver version details.
# ethtool -i eth0
Based on the driver name you get from the above command you can get more details on the module it is using from below command
# modinfo be2net
author: Emulex Corporation
description: Emulex OneConnect NIC Driver 11.2.1263.16
Few more examples on a hardware with different Ethernet Network card
# ethtool -i eth0
# modinfo igb
description: Intel(R) Gigabit Ethernet Network Driver
author: Intel Corporation, <email@example.com>
Below are some more commands you can use to get the NIC firmware and driver related details and information
# hwinfo --network | grep Driver | sort | uniq
Driver Modules: "igb"
On RHEL 7
Next is 'lshw' utility, if this is not available you can get this from the Red Hat repo.
NOTE: This is available on Red Hat Enterprise Linux
# rpm -qf /usr/sbin/lshw
# lshw -c network
description: Ethernet interface
product: OneConnect NIC (Skyhawk)
vendor: Emulex Corporation
physical id: 0
bus info: pci@0000:06:00.0
logical name: eth0
width: 64 bits
capabilities: pm msix pciexpress vpd bus_master cap_list rom ethernet physical autonegotiation
configuration: autonegotiation=on broadcast=yes driver=be2net driverversion=11.2.1263.16 duplex=full firmware=11.2.1263.19 latency=0 link=yes multicast=yes slave=yes speed=1Gbit/s
As you see here it also gives us enough detailed information about the available Ethernet Card with the firmware and driver version along with the driver name