- .NET 5.0 has been removed as a target as it has reach its end of life. However, if you are using .NET 5.0, the .NET Standard 2.1 target should continue working for you.
- .NET 7.0 and .NET 8.0 have been added as a target.
- The
IsAnycast
property was added toMaxMind.GeoIP2.Model.Traits
. This returnstrue
if the IP address belongs to an anycast network. This is available for the GeoIP2 Country, City Plus, and Insights web services and the GeoIP2 Country, City, and Enterprise databases.
- Update System.Text.Json to 6.0.1 for .NET Standard 2.0 and 2.1.
- This library no longer targets .NET 4.6.1.
- .NET 6.0 was added as a target.
- On .NET 5.0+, HttpClient is now used for synchronous requests instead of WebRequest.
- Support for mobile country code (MCC) and mobile network codes (MNC) was
added for the GeoIP2 ISP and Enterprise databases as well as the GeoIP2
City and Insights web services. The
MobileCountryCode
andMobileNetworkCode
properties were added toMaxMind.GeoIP2.Responses.IspResponse
for the GeoIP2 ISP database andMaxMind.GeoIP2.Model.Traits
for the Enterprise database and the GeoIP2 City and Insights web services. We expect this data to be available by late January, 2022.
- This release fixes an issue with 4.0.0 where the synchronous web service
methods could cause an unexpected JSON decoding error. There are no other
changes. The async
WebServiceClient
methods and theDatabaseReader
were not affected by the issue.
- This library now requires .NET Framework 4.6.1 or greater or .NET Standard 2.0 or greater.
- .NET 5.0 was added as a target framework.
System.Text.Json
is now used for deserialization of web service requests.Newtonsoft.Json
is no longer supported for serialization or deserialization.- The
Names
properties onNamedEntity
models are nowIReadOnlyDictionary<string, string>
. - The
Subdivisions
property onCityResponse
andInsightsResponse
is now anIReadOnlyList<Subdivision>
. GeoNameId
properties onNamedEntity
models are nowlong?
rather thanint?
to match the underlying database.- The
httpMessageHandler
argument is now correctly initialized by theWebServiceClient
constructor. - The
Metadata
property was added toIGeoIP2DatabaseReader
. Pull request by Mihai Valentin Caracostea. GitHub #134 & #135.
- The
IsResidentialProxy
property has been added toMaxMind.GeoIP2.Responses.AnonymousIPResponse
andMaxMind.GeoIP2.Model.Traits
.
- You may now create
WebServiceClient
as Typed Client withIHttpClientFactory
in .NET Core 2.1+. Pull Request by Bojan Nikolić. GitHub #115 & #117. - The
WebServiceClient
constructor now supports an optionalhttpMessageHandler
parameter. This is used in creating theHttpClient
for asynchronous requests.
- This library has been updated to support the nullable reference types introduced in C# 8.0.
- A
Network
property has been added to the various response models. This represents the largest network where all the fields besides the IP address are the same. - The
StaticIPScore
property has been added toMaxMind.GeoIP2.Model.Traits
. This output is available from GeoIP2 Precision Insights. It is an indicator of how static or dynamic an IP address is. - The
UserCount
property has been added toMaxMind.GeoIP2.Model.Traits
. This output is available from GeoIP2 Precision Insights. It is an estimate of the number of users sharing the IP/network over the past 24 hours. - Updated documentation of anonymizer properties -
IsAnonymousVpn
andIsHostingProvider
- to be more descriptive. netstandard2.1
was added as a target framework.
- The
userId
constructor parameter forWebServiceClient
was renamed toaccountId
and support was added for the error codesACCOUNT_ID_REQUIRED
andACCOUNT_ID_UNKNOWN
. - The exception classes are no longer serializable when using the .NET Framework. This eliminates a difference between the .NET Framework assemblies and the .NET Standard ones.
- The
AutonomousSystemNumber
properties onMaxMind.GeoIP2.Model.Traits
,MaxMind.GeoIP2.Responses.AsnResponse
, andMaxMind.GeoIP2.Responses.IspResponse
are nowlong?
to match the underlying types in the databases. MaxMind.Db
was upgraded to 2.4.0. This adds a new file mode enum value for the database reader,FileAccessMode.MemoryMappedGlobal
. When used, this will open the file in global memory map mode. This requires the "create global objects" right.
- The
IsInEuropeanUnion
property was added toMaxMind.GeoIP2.Model.Country
andMaxMind.GeoIP2.Model.RepresentedCountry
. This property istrue
if the country is a member state of the European Union.
- The following new anonymizer properties were added to
MaxMind.GeoIP2.Model.Traits
for use with GeoIP2 Precision Insights:IsAnonymous
,IsAnonymousVpn
,IsHostingProvider
,IsPublicProxy
, andIsTorExitNode
. - Deserialization of the registered country when reading a GeoLite2 Country or GeoIP2 Country database now works. Previously, it was deserialized to the wrong name. Reported by oliverherdener.
- A
netstandard2.0
target was added to eliminate additional dependencies required by thenetstandard1.4
target. Pull request by Adeel Mujahid. GitHub #81. - As part of the above work, the separate Mono build files were dropped. As
of Mono 5.0.0,
msbuild
is supported.
- Add support for GeoLite2 ASN.
- Switch to the updated MSBuild .NET Core build system.
- Move tests from NUnit to xUnit.net.
- Upgrade to
MaxMind.Db
2.2.0.
- Use framework assembly for
System.Net.Http
on .NET 4.5. - Update for .NET Core 1.1.
- Re-release of 2.7.0 to fix strong name issue. No code changes.
- First non-beta release with .NET Core support.
- The tests now use the .NET Core NUnit runner. Pull request by Adeel Mujahid. GitHub #68.
- Updated documentation to clarify what the accuracy radius refers to.
- Added handling of additional error codes that the web service may return.
- Update for .NET Core RC2. Pull request by Adeel Mujahid. GitHub #64.
- .NET Core support. Switched to
dotnet/cli
for building. Pull request by Adeel Mujahid. GitHub #60. - Updated documentation to reflect that the accuracy radius is now included in City.
- Added support for the GeoIP2 Enterprise database.
- Try-based lookup methods were added to
DatabaseReader
as an alternative to the existing methods. These methods return a boolean indicating whether the record was found rather than throwing an exception when it is not found. Pull request by Mani Gandham. GitHub #31, #50.
- Parameterless endpoint methods were added to
WebServiceClient
. These return the record for the requesting IP address using theme
endpoint as documented in the web services API documentation. - The target framework is now .NET 4.5 rather than 4.5.2 in order to work better with Mono. GitHub #44.
- Upgrade MaxMindb.Db reader to 2.0.0-beta1. This includes significant performance increases.
- IMPORTANT: The target framework is now 4.5.2. Microsoft is ending support for 4.0, 4.5, and 4.5.1 on January 12, 2016. Removing support for these frameworks allows us to remove the dependency on the BCL libraries and fixes several outstanding issues. Closes #38, #39, #40, and #42.
- The assembly version was bumped to 2.5.0.
- Classes subclassing
NamedEntity
now have a default locale ofen
. This allows theName
property to be used (for English names) when the object is deserialized from JSON. Closes #41. - The
locale
parameter for theDatabaseReader
andWebServiceClient
constructors is now anIEnumerable<string>
rather than aList<string>
. - The tests now use NUnit 3.
- Updated MaxMind.Db to 1.2.0.
- Async support was added to the
WebServiceClient
. Each web-service end point now has a corresponding*Async(ip)
method. GitHub #1. - Use of RestSharp was replaced by
HttpWebRequest
for synchronous HTTP requests andHttpClient
for asynchronous requests. Microsoft BCL libraries andSystem.Net.Http
are used to provideasync
/await
andHttpClient
support on .NET 4.0. GitHub #33. - The library now has a strong name.
- Upgrade to MaxMind.Db 1.1.0.
- Fix serialization on exceptions.
- Upgrade to Json.NET 7.0.1.
- Upgrade to MaxMind.Db 1.1.0-beta1. This release includes a number of significant improvements for the memory-mapped file mode.
AverageIncome
andPopulationDensity
were added to theLocation
model for use with the new fields in GeoIP2 Insights.IsAnonymousProxy
andIsSatelliteProvider
inMaxMind.GeoIP2.Model.Traits
have been deprecated. Please use our GeoIP2 Anonymous IP database to determine whether an IP address is used by an anonymizing service.
- All of the database methods in
DatabaseReader
and all of the web service methods inWebServiceClient
now have a counterpart that takes anIPAddress
instead of astring
. Pull request by Guillaume Turri. GitHub #24. - The
JsonIgnore
attribute was added toNames
inNamedEntity
andSubdivisions
inAbstractCityResponse
as these were already exposed to JSON.NET through the private field backing them. Pull request by Dan Byrne GitHub #21. - The interfaces
IGeoIP2DatabaseReader
andIGeoIP2WebServicesClient
were added to facilitate dependency injection and mocking. Pull request by Naz Soogund. GitHub #22. - A
HasCoordinates
getter was added to theLocation
class. This will return true if both theLatitude
andLongitude
have values. Pull request by Darren Hickling. GitHub #23. - All of the response and model properties now set the appropriate
JsonProperty
rather than relying an JSON.NET's automatic matching. Serializing these objects should now product JSON much more similar to the JSON returned by the web service and internal structure of the data in database files. - Dependencies were updated to most recent versions.
- Added support for the GeoIP2 Anonymous IP database. The
DatabaseReader
class now has anAnonymousIP()
method which returns anAnonymousIPResponse
object.
- First production release.
- The deprecated
CityIspOrg
andOmni
methods were removed. DatabaseReader
methods will now throw anInvalidOperationException
when called for the wrong database type.DatabaseReader
now has aMetadata
property that provides an object containing the metadata for the open database.
- The web service client API has been updated for the v2.1 release of the web
service. In particular, the
CityIspOrg
andOmni
methods onWebServiceClient
have been deprecated. TheCity
method now provides all of the data formerly provided byCityIspOrg
, and theOmni
method has been replaced by theInsights
method. - Support was added for the GeoIP2 Connection Type, Domain, and ISP databases.
- Constructors with named parameters were added to the model and response classes. (Jon Wynveen)
- A constructor taking a
Stream
was added toDatabaseReader
. - Fixed dependency on wrong version of
Newtonsoft.Json
.
- Fixed broken error handling. Previously the wrong exceptions and error messages were returned for some web service errors.
- API CHANGE: Renamed exceptions to remove GeoIP2 prefixes.
- Improved error messages when RestSharp does not return an HTTP status code.
- First release with GeoIP2 database support. See
DatabaseReader
class.
- Build documentation.
- Initial release.