We present a self-consistent Monte Carlo integration scheme to determine the accessible volume and the accessible surface area of a porous solid with known atomistic configuration. The new feature of this method is the determination of the variation of volume not only with respect to the distance from the surface (geometrical factor) but also with respect to the energy of the closest solid atom type. The variation with respect to distance gives us information about the area of the solid-fluid boundary (which is defined as one on which a spherical particle has zero solid-fluid potential energy) while the variation of the interfacial area of a contour at any distance from the surface, yields the surface curvature, for both convex and concave surfaces. On the other hand, the variation with respect to the type of solid atom yields information about the distribution of the area in terms of the heterogeneity of the surface. We illustrate our new method with a number of examples, ranging from a simple channel pore to complex solids, such as metal organic frameworks (MOF) and bundles of carbon nanotubes.