We use and really like Linkchecker:
http://wummel.github.io/linkchecker/
It’s open-source, Python, command-line, internally deployable, and outputs to a variety of formats. The developer has been very helpful when we’ve contacted him with issues.
We have a Ruby script that queries our database of internal websites, kicks off LinkChecker with appropriate parameters for each site, and parses the XML that LinkChecker gives us to create a custom error report for each site in our CMS.